我有一个 Eclipse Java 项目,我正在尝试使用 Maven 执行单元测试。
我有如下的单元测试,以便它尊重预期的层次结构
src/test/java/StringUtilsTests.java
但是,我的单元测试引用了位于以下位置的源代码:
src/my/package/root/util/StringUtils.java
只是因为它一直都是这样,我不想为测试更改我的文件夹层次结构。
因此,我使用 build-helper-maven-plugin 来添加这个源文件夹,如下
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<id>add-test-source</id>
<phase>generate-test-sources</phase>
<goals>
<goal>add-test-source</goal>
</goals>
<configuration>
<sources>
<source>src/my/package/root/util</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
但即便如此,我还是收到以下错误:
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /C:/Users/frederic/git/myproject/src/test/java/StringUtilsTests.java:[22,32] package package my.package.root.util does not exist
下面是我对 maven-surefire-plugin 的引用
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M5</version>
<configuration>
<skipTests>false</skipTests>
</configuration>
<executions>
<execution>
<goals>
<goal>test</goal>
</goals>
</execution>
</executions>
</plugin>
如果我不进行测试,情况会更糟
src/test/java/StringUtilsTests.java
但在这里例如:
src/tests/my/package/root/util/StringUtilsTests.java
maven-surefire-plugin 将显示
No tests to run