gpt4 book ai didi

java - 单元测试 - 需要建议

转载 作者:行者123 更新时间:2023-12-03 18:41:37 25 4
gpt4 key购买 nike

我有一个由父项目和几个子项目组成的 spring 项目。构建是基于 maven 的,持续集成服务器是 hudson。

我需要选择单元测试的运行方式。目前,有几个很好但也很少的垃圾 junit 测试。我不想弄乱子项目的测试包,因为这会很耗时,我不熟悉所有的 junits,最后但并非最不重要的一点是:我很懒。

我的问题是:

  1. 我应该使用 maven-surefire-plugin 并在测试包中进行大量清理吗?
  2. 是否可以通过任何方式告诉 hudson(不在正在构建的项目的 pom.xml 中)运行特定单元测试并忽略其他单元测试?
  3. 我是否应该创建一些其他构建 -(ant?)并使用它在 hudson 上运行单元测试?
  4. 市场上还有其他我不知道的好选择吗?

如有任何建议,我们将不胜感激。

航空

最佳答案

  1. should i use maven-surefire-plugin and do a heavy cleanup in the test package?
  2. is it any way to tell hudson (not in pom.xml of the project being built) to run specific unit tests and ignore others?

如果你只想在单模块项目中运行单元测试,你可以这样做

mvn test

这将运行所有 maven lifecycle phases直至 test,包括 compiletest-compile(如您在 built-in lifecycle bindings 中所见,surefire:test 目标是分阶段执行的测试)。现在如果你想限制执行的单元测试,你可以配置 surefire:test使用 test 执行插件参数:

mvn test -Dtest=Funky*Test

(这将执行所有以Funky开始并以Test结束的测试类)


不幸的是,命令行配置是有限的,如果你想要多个包含和排除,你将不得不做一些 XML 配置。我建议为 hudson 使用专用配置文件:

<profiles>
<profile>
<id>hudson</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.6</version>
<configuration>
<includes>
<include>**/TestA.java</include>
<include>**/Funky*Test.java</include>
<include>**/Test**.java</include>
</includes>
<excludes>
<!-- overrides above include -->
<exclude>**/TestButNotMe.java</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>

现在你可以让你的 hudson 像这样调用 maven 了:

mvn -Phudson test

关于java - 单元测试 - 需要建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4721827/

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