gpt4 book ai didi

java - 如何让单元测试在 Maven Tycho 构建中运行?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:56:41 25 4
gpt4 key购买 nike

我过去做了很多工作,编写在“常规”Maven 构建中运行的单元测试,使用 JUnit 和 Mockito(和 PowerMock)。我现在正在研究 Eclipse 插件代码库,它是使用 Maven Tycho 构建的。

总的来说,这是一个多项目构建,但我只是将单元测试 添加到其中一个插件项目(目前)。

我听说过 tycho-surefire,但这看起来很复杂,而且听起来更像是它支持集成测试而不是单元测试。我猜我可能别无选择,只能使用它,但到目前为止我还没有尝试集成它。

我尝试从 Maven 获取 JUnit 和 Mockito Artifact ,然后使用 maven-dependency-plugin 获取可在 Bundle-Classpath 中引用的 Artifact list 的属性。

当我运行构建时,tycho-compiler-plugin 我看到它编译 105 个源 文件,其中包括 src/main 中的所有类/javasrc/test/java。 它无法编译测试类,因为它找不到Mockito类,即使当我使用-X运行构建时,它显示 dependency 树中的 mockito-all Artifact 。

我可以在这里做什么?

最佳答案

经过大量痛苦的 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 以执行所有可用的单元测试。

关于java - 如何让单元测试在 Maven Tycho 构建中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36431464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com