问题标签 [surefire]

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 投票
8 回答
8884 浏览

maven-2 - Maven Surefire:无法分叉并行测试执行

使用 Maven surefire,我无法分叉并行测试执行。也就是说,我的每个测试用例都需要在单独的 JVM 中运行,因此需要分叉。此外,我希望我的测试用例并行运行。第一部分工作没有问题:我能够在自己的 JVM 中运行每个测试用例。然而,第二部分对我来说仍然是一个挑战。我还没有设法让测试用例的并行执行工作。这是我的插件声明的样子:

我已经尝试了方法和类,但没有看到任何并行化。我的 JUnit 版本是 4.7,如依赖声明所示:

任何帮助都会非常有用。

格雷戈里。

0 投票
4 回答
26182 浏览

eclipse - 如何更轻松地调试 Maven Surefire 测试(使用 Eclipse 作为调试服务器)

我正在使用 maven/surefire/eclipse 编写一些代码,然后对其进行测试/调试。

标准方法是使用 maven.surefire.debug maven 属性。默认情况下,启用此属性时,maven 开始侦听端口 5005,我可以使用远程调试器附加到被调试的进程。当测试完成时,远程调试器与服务器断开连接。

在 eclipse 中使用时,此过程涉及两个步骤:

  1. 运行行家
  2. 使用远程启动配置连接

我想要实现的是将其减少到:

  1. 运行行家

我发现,将 maven.surefire.debug 属性设置为一些远程调试选项会改变远程调试行为。因此,当我指定即

-Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=n,address=5005"

然后 build 将尝试连接到监听端口 5005 的我的 Eclipse 进程。这样我反转了 Maven 和 Eclipse 的默认客户端/服务器角色。

然而,这种方法存在一个大问题。它没有给我任何东西,因为在 maven 构建完成后,eclipse 停止侦听服务器端口。这是我不明白的部分。当我作为调试客户端从 Eclipse 连接到例如 WebLogic 服务器时,它允许我随意连接/断开连接任意多次。

任何人都知道这是否正常,或者我可能需要指定一些额外的选项来使调试 maven 测试更容易?

0 投票
1 回答
771 浏览

java - surefire forkMode 仅导致最后一个测试记录在 TestSuite.txt

我的 pom.xml 中有以下内容

当我执行“mvn test”时,最后我只能在 TEST-TestSuite.txt 中获得最后一次测试运行的结果。

我确实希望启用分叉,因为我正在测试一些 Cassandra 交互并且我想做间歇性的数据库清理。

0 投票
4 回答
40111 浏览

maven-2 - maven surefire 下的日志记录级别

我无法调整 java 日志的日志级别。我正在使用 maven surefire (mvn test),并尝试从默认的 INFO 调整为例如 FINEST。

我在src/test/resources/logging.properties下有 logging.properties 文件

编译后,我在 target/test-classes 下看到了一个带有预期配置的 logging.properties 文件:

java.util.logging.ConsoleHandler.level=FINEST

javax.enterprise.system.container.ejb.level=FINE

...

但是 glassfish 的控制台输出只有 INFO / SEVERE 级别的消息。

我哪里做错了?或者这是与 Maven 对接的另一个痛苦?

0 投票
1 回答
36499 浏览

maven-2 - 在测试阶段生成 html surefire 测试 html 输出

我不确定这是否是一个简单的问题,但我希望在测试阶段生成 html 格式的输出文件(除了 xml 和 txt 格式的输出文件)。

我试图通过为 build>surefire 添加一个“执行”条目来实现这一点。这是正确的位置吗?如果是这样,我做错了吗?

0 投票
4 回答
22628 浏览

java - 使用 Surefire 和 TestNG 运行单个测试类或组

我想使用 Maven 和 TestNG 从命令行运行单个测试类

不起作用的事情:

我在 pom.xml 中定义了组,而这个类不在其中一个组中。所以它基于这些理由被排除在外。

当配置是

在 pom.xml 中没有定义组时,参数工作正常。

同样,当surefire配置为

我可以添加另一个带有-Dtest参数的测试,但不能添加组。在任何组合中,我都可以缩小要与组一起执行的测试,但不能扩展它们。

我的配置有什么问题?有没有办法在 pom.xml 中定义的测试或组之外运行单个测试或组?

在 Ubuntu 10.04 上试用 Maven 2.2.1、TestNG 5.14.6 和 Surefire 2.7.1

0 投票
1 回答
4338 浏览

java - 如何将失败的测试轨迹输出到控制台

我正在从 Maven 运行一个测试:

mvn test -Dtest=TestCircle

/target/...如果测试失败,Maven 会在文件夹中输出异常。

有没有办法告诉 Maven 这个异常应该直接打印在控制台上,这样我就不用查看了/target/surefire-reports/...

0 投票
3 回答
31549 浏览

java - Maven/Surefire 找不到要运行的测试

据我所知,测试文件的位置是正确的。

当我运行“mvn test”时,它会找到四个名为 SomethingTest 的类(它们位于“test”文件夹中)。

但是,它会忽略任何 jUnit 测试(jUnit 4,使用 @Test 注释)。

我该如何调试?

编辑- 这可能与包含的 jUnit 版本错误有关。我在运行“mvn -X”时看到了这个

尽管我在根 pom 中的第一个依赖项是在 jUnit 4.8.1 上,但出于某种原因,jUnit 3.8.1 也被包含在内。

编辑 2 - 好的,这似乎不是答案。测试类路径包括正确的 jUnit (4) 和我的测试类。

编辑 3 - 我有名为 SomethingTester 的测试类。当我将其更改为SomethingTest时,它起作用了。我检查了 Surefire 的包含模式,确实它没有被配置为捕获Something Tester。多哈。

0 投票
1 回答
1699 浏览

java - 使用 netbeans 调试 Maven 测试?

我正在尝试在 NetBeans 6.9.1 中调试 Maven 测试。有谁知道该怎么做?我问的原因是因为如果我使用 Maven 运行测试,它们都会通过。但是,如果我使用 NetBeans 调试我的测试(右键单击测试类 -> 调试测试文件),我的测试将失败,因为我设置了 Surefire 来处理我的测试,而 NetBeans 似乎使用它自己的测试运行器。我注意到 Surefire 有一个调试选项,但是你将如何在 NetBeans 中使用它,即让它在 NetBeans 中的断点处停止?

谢谢你的帮助。

0 投票
1 回答
2061 浏览

java - JUnit runner 从 java.io.Writer 获取 NullPointerException


我从 Maven Surefire 插件收到 NullPointerException。它只发生在使用 DBUnit 的测试上。Surefire 报告文件为空。

当我尝试使用 JUnit 运行器从 NetBeans IDE 运行相同的测试时,我得到了相同的异常:

java.io.Writer 类的write方法只有一个 String 参数。这意味着跑步者必须将 null 作为参数传递。但这是怎么发生的?