我过去做了很多工作,编写了在“常规”Maven
版本中运行的单元测试,
使用JUnit和Mockito(以及PowerMock)。我现在正在开发一个Eclipse插件代码库,它使用Maven Tycho构建。
总的来说,这是一个多项目构建,但我只是将单元测试添加到其中一个插件项目中(暂时)。
我听说过tycho-surefire
,但这看起来很复杂,听起来更像是支持集成测试,而不是单元测试。我猜我可能别无选择,只能使用它,但到目前为止我还没有尝试整合它。
我尝试从Maven获取JUnit和Mockito工件,然后使用maven-dependency-plugin
来获取可在清单的Bundle-Classpath
属性中引用的工件。
当我运行构建时,tycho-compiler-plugin
我看到正在编译105个源文件,其中包含src/main/java
和src/test/java
中的所有类。
它无法compile
测试类,因为它无法找到Mockito
类,即使我使用-X
运行构建时,它也会显示mockito-all
个工件。 依赖树。
我可以在这做什么?
答案 0 :(得分:2)
经过大量痛苦的Maven试验&错误我在this website上挣扎,这提供了一种在Maven-Tycho设置中使用单元测试的简单方法。
这里,使用JUnit时pom.xml
的重要部分(可能与Mockito相似):
<testSourceDirectory>src/test/java</testSourceDirectory>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
<executions>
<execution>
<id>test</id>
<phase>test</phase>
<configuration>
<includes>
<include>**/*Test.java</include>
</includes>
</configuration>
<goals>
<goal>test</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<executions>
<execution>
<id>compiletests</id>
<phase>test-compile</phase>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
以某种方式命名所有测试,以便以*Test.java
结束。运行mvn test
以执行所有可用的单元测试。
答案 1 :(得分:-1)