当前位置: 首页 > 面试题库 >

在Maven中运行JUnit测试,而无需构建和复制文件

吕晟睿
2023-03-14
问题内容

我有一个大型的Maven项目,其中包含多个模块。当我想从一个模块运行JUnit测试时,我在包含所有模块的目录中运行“ mvn -Dtest =
NameOfTest测试”。当我运行此命令时,Maven会遍历每个模块并尝试对其进行编译(尽管它已被编译),这涉及到复制一堆文件并增加测试的总时间。看来,Maven
surefire插件的“ test”命令执行了测试之前的所有步骤。我想知道是否有一种方法可以仅执行测试步骤,而不会干扰所有尝试的文件编译和复制。

这是测试开始之前的一些输出:

[INFO] 
[INFO] --- build-helper-maven-plugin:1.5:add-test-source (add-test-source) @ module1 ---
[INFO] Test Source directory: <directory in module1 with some generated sources> added.
[INFO] 
[INFO] --- maven-resources-plugin:2.5:testResources (default-testResources) @ module1 ---
[debug] execute contextualize
[INFO] Copying 108 resources
[INFO] Copying 1113 resources
[INFO] Copying 1 resource
[INFO]

对于其他每个模块重复此操作。所有人都说,实际上开始测试需要一两分钟。有谁知道一种无需事先打扰所有编译即可运行测试的方法?请告诉我是否还有其他信息。


问题答案:

如果您只想运行生命周期的测试阶段而不运行之前的所有阶段,那么您也可以将绑定到测试阶段的目标称为:

mvn surefire:test

或者如果您只想运行一项测试

mvn -Dtest=NameOfTest surefire:test


 类似资料:
  • 问题内容: 我正在使用JUnit 4.4和Maven,并且有大量的长时间运行的集成测试。 关于并行化测试套件,有一些解决方案可以让我在单个测试类中并行运行每个测试方法。但是所有这些都要求我以一种或另一种方式更改测试。 我真的认为,在X线程中并行运行X个不同的测试类将是一种更干净的解决方案。我有成百上千的测试,所以我真的不在乎线程测试类。 问题答案: 使用Maven插件:

  • 我目前正在使用Jenkins设置一个持续集成工具。每次构建完成时,我都想运行JUnit测试。我的问题是,将要测试的项目都没有使用maven或ant。所以我想知道是否可以在没有maven或ant的情况下运行这些测试,如果可以,我该怎么做? 提前谢谢你的回答

  • 问题内容: 我目前正在与Jenkins建立一个持续集成工具。我想在每次构建时都运行JUnit测试。我的问题是将要测试的项目都没有使用maven或ant。所以我想知道是否可以在没有maven或ant的情况下运行这些测试,如果可以,我该怎么办? 预先感谢您的回答 问题答案: 您是否尝试过JohannesLink的ClasspathSuite? 从文档中: 机制很简单。只需在Eclipse中创建一个新项

  • 我有一些Selenium Webdriver测试,希望使用mvn-test从命令行运行。问题是,我可以清理,构建和编译没有问题,但没有测试运行。我没有收到任何与测试有关消息,如“There are no tests to run”。 我的junit测试遵循*Test类命名约定。 编辑:好的,我发现这是一个配置文件的问题-修复!

  • surefire插件是 我已经给了mvn测试命令,但它仍然在日志中给出零测试。有没有人能帮助我如何通过Maven运行junit test.java文件?