我在这里看到了:在Maven/Surefire中,什么是清理单元测试后的好方法,无论测试是否通过?但这帮不了我。我可能错误地配置了failsafe和/或surefire。
我已经将jUnit声明为依赖项
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
我在构建中有故障安全插件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.20</version>
<!--
<configuration>
<skipITs>true</skipITs>
</configuration>
-->
<executions>
<execution>
<id>run-nonautowired-tests</id>
<phase>integration-test</phase>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<includes>
<include>*Test.java</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
我没有任何遵循*IT命名约定的集成测试,只有遵循*Test命名约定的jUnit测试。我只是试图使用故障安全作为一种方法来确保我的清理完成。我试过船长是真的,我试过评论这一点。我已经尝试过使用和不使用配置includes。
<!--
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
-->
我是在IntelliJ14.1.5中执行此操作的,但是将Maven生命周期运行到验证阶段,而不是让IntelliJ直接运行jUnit测试。
此外,它似乎是可靠的2.12.4运行默认测试,我不知道这是从哪里来的。
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test (default-test) on project RefRange: There are test failures.
我应该从哪里看2.12.4来自哪里?我如何才能让它运行一次jUnit测试,并在失败的情况下继续到下一个阶段?
<skip>false</skip>
<skipTests>true</skipTests>
对其配置,将故障安全包括更改为
<includes>**/*Test.java</includes>,
运行mvn verify-X,在故意测试失败后,我立即得到以下结果:
[INFO] Results:
[INFO]
[ERROR] Failures:
[ERROR] ref_range_by_RTest.testGetConfigManager:56
Expected: is "C:\Program Files (x86)\Apache Software Foundation\Apache Tomcat 8.0.27/app_rsrcs/refrange/data"
but: was "C:\Program Files (x86)\Apache Software Foundation\Apache Tomcat 8.0.27/app_rsrcs/refrange/data-not"
[INFO]
[ERROR] Tests run: 5, Failures: 1, Errors: 0, Skipped: 0
[INFO]
[WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent! The file encoding for reports output files should be provided by the POM property ${project.reporting. outputEncoding}.
[INFO]
[INFO] --- maven-failsafe-plugin:2.20:verify (run-nonautowired-tests) @ RefRange ---
[DEBUG] Configuring mojo org.apache.maven.plugins:maven-failsafe-plugin:2.20:verify from plugin realm ClassRealm[plugin>org.apache.maven.plugins:maven-failsafe-plugin:2.20, parent: sun.misc.Launcher$AppClassLoader@647e05]
[DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-failsafe-plugin:2.20:verify' with basic configurator -->
[DEBUG] (s) basedir = C:\Git\clincor-clindev\refrange
[DEBUG] (s) reportsDirectory = C:\Git\clincor-clindev\refrange\target\failsafe-reports
[DEBUG] (s) skip = false
[DEBUG] (f) summaryFile = C:\Git\clincor-clindev\refrange\target\failsafe-reports\failsafe-summary.xml
[DEBUG] (s) testClassesDirectory = C:\Git\clincor-clindev\refrange\target\test-classes
[DEBUG] (s) testFailureIgnore = false
[DEBUG] (f) session = org.apache.maven.execution.MavenSession@2eef62
[DEBUG] -- end configuration --
[DEBUG] Failsafe report directory: C:\Git\clincor-clindev\refrange\target\failsafe-reports
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 11.976 s
[INFO] Finished at: 2017-05-17T20:54:09-07:00
[INFO] Final Memory: 17M/247M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-failsafe-plugin:2.20:verify (run-nonautowired-tests) on project RefRange: There are test failures.
[ERROR]
[ERROR] Please refer to C:\Git\clincor-clindev\refrange\target\failsafe-reports for the individual test results.
[ERROR] Please refer to dump files (if any exist) [date]-jvmRun[N].dump, [date].dumpstream and [date]-jvmRun[N].dumpstream.
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-failsafe-plugin:2.20:verify (run-nonautowired-tests) on project RefRange: There are test failures.
当前,Failsaf:Verify
绑定到Integration-Test
阶段:
<executions>
<execution>
<id>run-nonautowired-tests</id>
<phase>integration-test</phase>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<includes>
<include>*Test.java</include>
</includes>
</configuration>
</execution>
</executions>
failsafe
将在post-integration-test
清理之前导致失败。
尝试从Integration-Test
阶段移除
。如果需要,可以为verify
阶段创建单独的执行。
更新:考虑在插件本身而不是在执行中声明配置
属性:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.20</version>
<configuration>
<includes>**/*Test.java</includes>
</configuration>
...
这样,您可能会省略故障安全插件显式声明的执行。
问题内容: 在我的项目中,我必须在所有测试之前进行一些存储库设置。这是使用一些棘手的静态规则完成的。但是,在所有测试之后,我不知道如何进行清理。我不想保留一些不可思议的静态数字来引用所有测试方法的编号,我应该一直保持这种状态。 最受赞赏的方法是添加一些将在所有测试后调用的侦听器。JUnit4中已经有用于它的任何接口吗? 编辑:这与@BeforeClass和@AfterClass无关,因为我必须知道
...还有一个很简单的测试... 如果我在IntelliJ中运行这个,测试就会运行并失败。 如果我提交这个项目并将其推送到github,TeamCity会看到变化并开始构建。生成会很快失败,出现以下错误:
问题出现在字段中。 在JUnit4中,一切都工作得很好,没有错误。我试图使用JUnit4中的,因为我在pom.xml中有一个junit-vintage-engine依赖项,但没有帮助。
我有这个过滤器类,在使用junit进行测试时需要尽可能高的代码覆盖率。 和测试等级: 当我运行时,它在 线 我如何避免这种情况? 我需要调用这个方法并执行里面的任何内容来提供所需的代码覆盖。
我注意到,有时在Jenkins上运行maven构建时,运行的Jbehave测试的数量会因运行的不同而不同。在分析日志时,我看到以下代码段: 问题是,当跳过测试或以这种方式运行失败时,构建仍然被视为成功。 是否有maven surefire插件配置,可以确保在测试失败时运行构建会导致失败?以下是maven surefire构建配置
我花了相当长的时间试图找出解决我问题的办法,但毫无结果。 无论如何,我有一堆集成测试(在一个与标准测试目录并行的非标准目录testRegression中)。 这些集成测试使用内存数据库中的h2。在生产和测试中,我使用liquibase来模拟模式演变。 我的属性(在应用程序testregion.properties中)如下所示: 我一直得到的错误是: 那么我该如何回避这个问题呢?我的基本理解是,每个