我们使用maven surefire插件并行运行测试。${tests.wildcard}
由配置文件指定。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.16</version>
<configuration>
<forkCount>4</forkCount>
<reuseForks>false</reuseForks>
<includes>
<include>${tests.wildcard}</include>
</includes>
</configuration>
</plugin>
我希望在surefire并行运行我的测试之前,每次maven的整个执行过程中只能运行一次方法。我怎么能那么做?
您可以有一个特殊的测试用例来执行您的验证代码(如果是这样,则失败)。
然后,该测试用例将由特定的Maven Surefire执行(不包括其他测试)执行,并附加到发生在test
阶段(如process-test-classes
)之前的Maven阶段:因此,在任何其他测试之前,每个Maven运行有效地调用一次。
然后,正常的test
阶段将执行任何其他所需的测试,不包括特殊的init测试。
这种配置的一个示例是:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19</version>
<configuration>
<excludes>
<exclude>**/InitTest.java</exclude>
</excludes>
</configuration>
<executions>
<execution>
<id>test-init</id>
<phase>process-test-classes</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<test>InitTest</test>
</configuration>
</execution>
</executions>
</plugin>
注任何Surefire执行的全局配置都将排除特殊的init测试。然后将执行一个额外的执行(在test
阶段之前),并且只运行init测试(使用
元素,该元素优先于任何其他include/exclude元素)。
因此,您将有以下流程:
问题内容: 我正在尝试结合以下注释: 像下面的代码: @Before方法中的代码在@Sql批注中的脚本“ dml-parametro.sql”之后运行。 这样做对吗? 对于此解决方案,我使用@After而不是@Before,但我想在测试执行之前而不是之后cdelete表。 我不想使用@SqlConfig。我没有在测试级别上使用Transacional范围,因此我需要在每种测试方法中清除表。如果每个
问题内容: 运行时,输出: 但是,当我再次运行后,所有测试都通过了。 仅当我重置mysql数据库然后首次运行时,测试才会失败。 对于每个请求,我都会做一个请求,以确保在数据库中创建了数据。 谁能帮助我确保测试按顺序运行?那是请求在请求之前运行? 问题答案: 您不能/不应该依赖测试执行顺序。没有定义测试的执行顺序,并且使用测试标志可以排除测试的运行,因此您无法保证它们将完全运行。 例如,以下命令将仅
我最近发现了命令来自动碰撞包版本号并提交更改。这是一个神奇的小发现。 有没有可能在撞击前进行测试 我在google或堆栈搜索“npm version......”中找不到任何东西匹配了太多不相关的结果。并且没有关于文档npm-version中测试的信息 在这个发现之前,我一直在乞求编写一个脚本。为了测试,碰撞版本,然后git提交。 我用的是karma,package.json包含 在测试npm版本
这是我当前的maven-surefire-plugin配置:
本文向大家介绍如何在TestNG中多次执行特定的测试方法(例如5次)?,包括了如何在TestNG中多次执行特定的测试方法(例如5次)?的使用技巧和注意事项,需要的朋友参考一下 我们可以在invocationCount helper属性的帮助下多次执行特定的测试方法(例如5次)。 示例 在Java类文件中,将invocationCount设置为5的方法将导致admin中的Login是一条成功消息,该
这是驱动程序类,它将为每个测试方法创建驱动程序实例。