当前位置: 首页 > 面试题库 >

在没有显式TestSuite的情况下,不要在Maven和每个IDE(Eclipse,IntelliJ等)中默认运行缓慢的JUnit测试类别。

隆芷阳
2023-03-14
问题内容

我有一组非常缓慢的测试,需要一周才能运行。(他们实际上会连续运行一些代码约一周)。

自然,没有开发人员(甚至是默认的构建作业)都不想运行这些测试。只有特定的,单独的构建作业才有时间运行它们。因此 ,默认情况下需要禁用这些测试

JUnit的类别对此似乎很完美:我用注释了那些缓慢的测试@Category(SlowTests.class)。问题在于它们仍在运行,因为:

  • 我不想维护TestSuite类,因为我们每天都添加Tests。我有0个TestSuite类:Maven,IntelliJ和Eclipse仅运行模块中的所有Test类。包括所有那些缓慢的测试。
  • 即使我们拥有TestSuite类,大多数开源贡献者仍会尝试从IntelliJ或Eclipse运行所有Test类,认为它们挂起并放弃正在运行的测试。默认情况下,这些慢速测试需要排除。最好在IntelliJ或Eclipse中无需任何额外配置。

如何在不使用显式TestSuite的情况下默认排除慢速JUnit测试类别?


问题答案:

这个 工作在默认情况下,在Maven中,的IntelliJ和Eclipse

import static org.junit.Assume.assumeTrue;

@Test
public void mySlowTest() {
    assumeTrue("true".equals(System.getProperty("runSlowTests")));
    ...
}

无论如何要运行它们,只需添加VM参数-DrunSlowTests=true

从语义上讲,这是完全错误的。但这有效:)



 类似资料:
  • 我有一个项目结构: 我用mvn clean:install构建了它,并创建了jar文件。现在,我想使用命令行运行QbsApplicationTests。为此,我在一个目录中放入了两个罐子: 并执行以下命令: 然而,我不断得到以下错误 问题: 我应该如何从控制台运行QbsApplicationTests测试 编辑我还尝试添加以下内容: 到主类,但Intellij一直说无法解析。

  • 问题内容: 我刚刚在Eclipse上第一次安装了插件m2e。 我编写了一个简单的JUnit(版本4)测试。我可以从Eclipse中运行它,但不能从pom.xml中运行它(alt单击,运行方式,Maven测试)。我想我需要告诉Maven搜索该课程,但我只是不知道如何。 另外,我在groupId“ junit”中找不到JUnit 4:只有版本3.8.1可用。我真的需要为3.x版本而不是4+版本编写测试

  • 无论我为Maven+Surefire使用什么设置,我从未在我的流程管理器中看到超过一个JVM。我有一台Windows7电脑,有8个物理内核。我运行的是最新的Maven/Surefire/JUnit和JDK8(32位)。 以下内容对我不起作用: (我尝试了、、、、和的各种组合。)

  • 如何在不使用TestNG或JUnit的情况下并行运行Selenium测试用例。 目前我正在使用命令 客户端(节点)命令: java-jar selenium-server-standalone-2.35.0.jar-角色节点-hub Protocol://host:4444/grid/register-浏览器浏览器名=firefox,平台=WINDOWS maxInstances=3。 但它不起作

  • 问题内容: 我有一个包含200多个测试类别的近500个单独测试的项目。这些测试中有一些在完成测试后并不能很好地关闭它们自己的状态,在Eclipse中这会导致某些测试失败。通过Ant从命令行运行测试套件时,所有测试均通过。 我可以在Eclipse中以某种方式启用“测试隔离”吗?我不在乎是否需要更长的时间。 从长远来看,我会清理行为异常的测试,但短期而言,我想使测试正常工作。 问题答案: 如果在Ecl

  • 我正在尝试将Cucumber集成到现有的Spring Boot项目中 当前项目是单个Maven模块 单元测试(不含Spring上下文)和集成测试(含Spring上下文)组合在同一个测试文件夹中。 我想做的是能够调整我的单元测试和集成测试。 但是一旦我添加了依赖项(为了能够在规范旁边运行Spring上下文),它就要求文件夹中的所有测试都用注释。 下面是我的测试套件,配置为获取测试规范。 是否可以将两