java main usage_关于单元测试:Surefire没有在src / main / java中启动测试

我需要根据maven-jar-plugin documentation => http://maven.apache.org/plugins/maven-jar-plugin/usage.html中的这个建议将一些src / test / java移动到src / main / java

我之所以这样做,是因为我在测试范围内的另一个项目中使用了测试(辅助)类。

所以我创建了my-project-test,移动了测试类,并配置了surefire以指定测试类directory =>

org.apache.maven.plugins

maven-surefire-plugin

${basedir}\src\main\java\

但是当我启动mvn test时,执行了0次测试=>

Results :

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0

问题与此相同=> Maven没有找到JUnit测试运行但是解决方案(配置surefire maven插件)对我不起作用。

您是否尝试运行集成测试? 此外,为什么要定义testSourceDirectory? 你为什么用反斜杠?

正如@khmarbaise所提到的,也许它来自反斜杠。

我尝试了$ {basedir} / src / main / java /或src / main / java /但它运行的测试相同:0,失败:0,错误:0,跳过:0

maven surefire插件的良好配置是=>

org.apache.maven.plugins

maven-surefire-plugin

${basedir}/src/main/java/

${project.build.directory}/classes/

Results :

Tests run: 20, Failures: 0, Errors: 0, Skipped: 0

虽然这可行,但它绝不是一个好的配置,因为它不遵循Maven的做事方式。来源应该在src/main/java。他们编译的类将在target/classes中。测试源应在src/test/java。他们编译的类将在target/test-classes中。这是正确的约定,这样Surefire就可以开箱即用。将测试放在与模块源相同的目录中是不对的。

我没有把测试类放在同一个目录中,我创建了以"-tests"为后缀的anoter项目。这是maven-jar-plugin的推荐帮助=> maven.apache.org/plugins/maven-jar-plugin/usage.html =>"如何创建一个包含测试类的jar"=>"首选方式"

谢谢 - 这对我帮助很大。我正在开发一组koans(最初)失败的单元测试,但是在src / main中(已经完成的koans在src / test目录中),所以我需要能够在代码上调用surefire JUnit插件在src / main中。非常感谢你的帮助。

这应该适用于maven-failsafe-plugin。这就是我需要的!谢谢,@ Antoine!

由于测试类现在已放在src/main/java中,因此很可能它们在编译阶段被编译为target/classes。

因此,尽管配置了surefire来指示测试源位置是src/main/java,但它仍然会在target/test-classes中查找测试类,因为这是测试类的默认位置。

您可以尝试适当地指定testClassesDirectory参数,看看它是否有效。

另外,我想你可能误解了maven jar插件文档中的建议。 我不相信他们建议将测试源移动到src/main/java。 strike>

好的,我会这样做的。但是maven jar插件推荐接缝清楚:"将源文件从你想要从原始项目共享的src / test / java移动到这个项目的src / main / java。同样类型的移动也计入资源当然。"

@Antoine。你是对的。我熟悉the easy way,但从未意识到the preferred way。我也会更新答案。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值