问题标签 [maven-surefire-plugin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
578 浏览

maven-2 - 为什么 Maven surefire 插件会在 ${project.build.directory} 中创建两个 surefire* 目录?

我觉得这很烦人。目标文件夹中有两个 surefire* 目录:

我已经尝试找到删除surefire目录的选项,但我似乎可以找到它。问题是——我有其他项目没有这个空目录,只有surefire-reports.

我似乎做错了什么,我该如何删除它?我问这个的主要原因是这个空目录破坏了我在控制台中的选项卡自动完成功能,这让我很生气,因为目录是空的。

此外,这只是测试插件,而不是报告插件。项目中没有部分(没有任何父项)。

这是我的万无一失的插件设置:

提前致谢!

0 投票
1 回答
7759 浏览

maven - Maven surefire 2.12 不使用 -Dtest 参数运行特定测试

在为一个项目升级了我所有的 Maven 插件版本后,我遇到了以下问题:当我运行基本命令mvn test -Dtest=SomeTest时,构建完成而根本没有执行任何测试。事实上,我无法使用-Dtest参数运行任何测试(当然测试存在,并且在我简单地执行时运行mvn test)。

经过一番搜索,问题似乎是由于使用了surefire 2.12插件。我已经测试了多个版本的 Maven (2.2.1 / 3.0.2) 和 JUnit (4.7.x、4.8、4.10 甚至 3.8.x),但它们对我的问题没有影响。

所以也许我的项目有一些特定的配置可能会对此产生影响?无论如何,我创建了一个新项目,使用mvn archetype:generate(使用基本的org.apache.maven.archetypes:maven-archetype-quickstart)。

我只修改了 2 件事pom.xml:使用 JUnit 4.10(但它没有改变任何东西,我已经尝试过其他版本),并定义了 surefire 的版本:

我运行mvn test -Dtest=AppTest(原型创建的默认 JUnit 测试):

现在,我修改为 Surefirepom.xml使用2.12版并再次运行命令:

这次没有运行测试:(

就我而言,我认为这是一种倒退,但这非常令人惊讶。确实,在 Surefire 2.12 版本上记录了一个JIRA 缺陷,在这个描述中,他们成功使用了-Dtest参数。

难道我做错了什么?或者它是一个真正的回归(在这种情况下,我将创建 JIRA)?

谢谢。

0 投票
2 回答
995 浏览

unit-testing - 如何在 Maven 2 中的两个测试套件之间切换?

我们使用maven-surefire-plugin来运行我们的 Java 测试。测试分为两类:

  • 快速测试
  • 慢速测试

整个“快速”套件在几秒钟内运行,而慢速测试需要半小时。

在开发过程中,我只想运行快速测试。当我提交时,我也希望能够运行慢速测试,因此运行慢速测试应该是一个选项,而快速测试应该是默认设置。

在 CI 服务器上,我想同时运行两者。

当慢速测试包括快速测试时,这是可以的(甚至是首选)。

我应该如何为这种情况设置 Maven、JUnit 和 Surefire?

0 投票
2 回答
1990 浏览

fork - 使用 Powermock 覆盖 Emma

我们在项目中配置了 emma,它会生成覆盖率报告。整个设置工作正常,直到我引入 PowerMock 来模拟一些静态方法。

当我用@RunWith(PowerMockRunner.class) 注释一个类时,emma 尝试再次启动覆盖过程并抛出地址绑定异常。我认为 maven surefire 正在为不同的跑步者分叉一个新的 JVM,而 emma 试图在新的 JVM 上再次启动。

我为surefire forkMode尝试了不同的选项,但没有帮助。 Running util.HttpClientFactoryTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.154 sec Running xxx.util.ServiceConnectorUtilTest EMMA: collecting runtime coverage data ... java.net.BindException: Address already in use: JVM_Bind at java.net.PlainSocketImpl.socketBind(Native Method) at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:383)

关于如何解决这个问题的想法?任何帮助都非常感激。谢谢

0 投票
1 回答
1819 浏览

maven - 如何附加到使用 DLL 的 Maven Surefire 测试的系统路径?

我希望能够将 lib 目录附加到系统路径,以允许 Maven 运行(gah)使用 DLL 本机库的单元测试。

到目前为止,我习惯于<argLine>-Djava.library.path=${path.dll}</argLine>将我的 DLL 路径添加为库路径。但是,Windows 仍然希望通过路径解析 DLL,我得到:

java.lang.UnsatisfiedLinkError

那么,有没有办法为 Surefire 提供修改后的系统路径?

在此先感谢您的帮助。

0 投票
1 回答
2211 浏览

maven-2 - how to add a new table entry in surefire reports

I am new to maven. So finding it difficult to cope it with. I have two questions:

  1. Is there any way to add new contents in the maven surefire report plugin like new table etc. I want to customize the reports according to my need.
  2. I am using buildnumber plugin to get the unique run id for each run but this id is not getting reflected in the reports. Is buildnumber plugin only works with subversion?

The pom is;

I have one more query:

3-> If i make batch file or an exe file of the complete test suites can i run it on many JVM simultaneously for example with an eclipse i am running one JVM. But if am not using eclipse and just running the testsuite batch file directly can JRE instantiate many JVM instances. And if it is possible, do i need to associate each test suite with .m2 repository.

0 投票
1 回答
1623 浏览

maven-surefire-plugin - 自定义 maven surefire XHTML 报告

我将 Apache Maven 用于自动化目的,在测试自动化完成后,会生成 XHTML 和肯定的 HTML 报告。

我想根据我的格式自定义 Surefire HTML 报告,例如:放置我们的公司徽标、附加屏幕截图等。

有没有办法通过java代码自定义我的报告?我遇到了 XMLPARSER ...任何人都可以为我提供一个很好的链接或指导我如何进行此修改。

0 投票
4 回答
55899 浏览

java - 如何将另一个测试源文件夹添加到 Maven 并将其编译到单独的文件夹中?

我有src/test/java我们的单元测试的默认文件夹。一个单独的文件夹src/integration/java可用于集成测试。

我将其配置为maven-surefire-plugin在各自的阶段执行单元/集成测试。当编译的类位于正确的目录中时,这非常有用。不幸的是,Maven 只支持一个测试源文件夹和一个测试输出文件夹。

使用 mavens build-helper 插件,我可以添加另一个 test-source 文件夹,但编译后的类将生成到test-classes,但我想将类 src/integration/javatarget/integration-test-classes. 这可能吗?

PS:我不喜欢这个排除/包含在包基础解决方案中(**/it/**从默认测试阶段排除所有文件,并**/unit/**从集成阶段排除所有文件。

0 投票
1 回答
9075 浏览

maven - 使用本机库的 Surefire JUnit 测试

我们在 Hudson 中使用 Maven 来运行我们的 Java 构建过程,并使用 Surefire 插件来执行 JUnit 测试,但是我在一个需要本机 dll 的项目的单元测试中遇到了问题。

我们看到的错误是:

测试错误:TestFormRegistrationServiceConnection(com.#productidentifierremoved#.test.RegistrationServiceTest): no Authenticator in java.library.path

其中 Authenticator 是我们需要的 dll 的名称。我发现这个 SO post表明设置它的唯一方法是通过 argLine。我们将配置修改为:

但是,如果我们包含 System.out.println(System.getProperty("java.library.path")); 我们可以看到这没有被添加到路径中。

有什么想法可以解决这个问题吗?

0 投票
1 回答
1994 浏览

spring - maven + surefire-plugin 和 Spring @Autowired 的问题

我一直在努力让 Spring@Autowired在 Maven 测试中工作。当我在 IntellJ 中运行 JUnit 测试(没有尝试 Eclipse)时,它可以工作。但是当我运行 mvn clean install 时,JUnit 测试失败并出现以下错误

testApp(com.sample.spring.AppTest):创建名为“com.sample.spring.AppTest”的bean时出错:自动装配依赖项的注入失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:无法自动装配字段:com.sample.spring.AppB com.sample.spring.AppTest.appB;嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException:没有为依赖项找到类型为 [com.sample.spring.AppB] 的匹配 bean:预计至少有 1 个 bean 有资格作为此依赖项的自动装配候选者。依赖注解:{@org.springframework.beans.factory.annotation.Autowired(required=true)}

我创建了一个自包含的示例项目,该项目始终表现出这种行为。我正在使用 Spring 3.1.1。我确信有人遇到了同样的问题并破解了它。寻找有关此问题的一些指示。