默认情况下,Maven标准目录布局有两个Java源文件夹:
src/main/java
src/test/java
出于我的目的,我需要第三个src/junit/java
,它应该用分类器junit
打包到JAR中。
如果可能,新的源文件夹应该有自己的类路径(编译+范围为junit
的所有内容)。
我的猜测是,为此,我必须至少修改资源并编译插件。
或者有更简单的方法吗?
我有一个workaround as explained here,但为此,我必须在compile
类路径上放置像Mockito和JUnit这样的东西,这违反了我的纯洁感。
对于所有怀疑我的方法的智慧的人:我有一些支持代码,当你使用来自src/main/java
的代码时,它有助于编写单元测试。由于我在项目本身的测试中使用相同的支持代码,因此需要在 src/main/java
和 src/test/java
之前编译
具体来说,我的支持代码需要从src/main/java
导入代码,测试需要能够导入支持代码。
答案 0 :(得分:3)
我见过几个Maven设置,它们将测试代码捆绑在一个自己的Maven模块中。然后,您可以创建一个简单的主模块< - support-module< - 测试模块依赖关系链。但是如果你在没有测试模块的情况下自己构建它,那么主模块就可以正常编译。你可以用反应堆pom将它们聚集在一起,然后通过这个pom来构建项目。
编辑:
如果您对此代码覆盖率设置有疑问,可以使用Jacoco Maven插件将测试模块生成的测试覆盖率聚合到主模块。有关详细信息,请参阅此处:http://www.petrikainulainen.net/programming/maven/creating-code-coverage-reports-for-unit-and-integration-tests-with-the-jacoco-maven-plugin/