问题标签 [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 投票
1 回答
657 浏览

java - 重载的参数化测试运行器无法与 JUnit4Provider 一起使用

我正在使用以下测试运行器:http ://code.google.com/p/migen/source/browse/trunk/java/src/uk/ac/lkl/common/util/testing/LabelledParameterized.java?r= 3789

它所做的是将参数化测试的名称更改为更具可读性。即:预期结果 - “myDefinedTestName”

当我使用 eclipse 运行时,它可以正常工作:我可以看到新名称。当我使用JUnit4Provider运行时:

它不是。即:我得到“oldTestName [0]”。没有错误。为什么以及如何解决这个问题?


我曾尝试使用 JUnitCore,但没有成功。我做了以下事情:

测试运行者

听众

测试

使用测试运行器:http ://code.google.com/p/migen/source/browse/trunk/java/src/uk/ac/lkl/common/util/testing/LabelledParameterized.java?r=3789

这给出了输出:

0 投票
2 回答
1038 浏览

maven - Surefire 未正确处理成功百分比

我有一个等待测试,我预计有时会失败,因为测试线程太不同步了。所以我设置successPercentageandinvocationCount来处理偶尔可接受的失败。如果代码被破坏,任何调用都不会通过。

当我在 IntelliJ 中运行测试时,一切都很好。但是当我尝试在 Maven 中进行构建时,我得到以下信息

查看restng-results.xml,我看到了:

在 TEST-TestSuite.xml 中,我看到:

其余的 testng 生成的文件似乎认为一切都通过了。但看起来,万无一失的是,当事实上没有发生意外的事情时,它被SUCCESS_PERCENTAGE_FAILURE或认为出了问题的元素弄糊涂了。<error/>

任何人都知道这是一个已知问题还是有可用的解决方案?

0 投票
3 回答
1907 浏览

maven - Maven:跳过测试但仍然失败

我不知道这是一个问题还是建议。但我要问它作为一个问题,因为可能是我做错了什么。

我的问题是我想跳过 maven build 中的测试,在 eclipse 插件中,我在运行 maven 时检查了配置中的 Skip Test 选项。它仍然在 Test surefire 插件上失败,因为它无法下载 2.4.3 版本(即使我以前的 maven 项目使用 2.7.2 并且它已经存在于我的仓库中)所以我尝试跳过测试,它仍然失败的。

我将我的 POM 配置为使用我已经拥有的 surefire 2.7.3 插件,它只是说跳过测试。现在,我的困惑是,当它已经要跳过测试部分时,为什么还要费心去下载并确认用于surefire的插件是否存在。跳过它我说..

好吧,这是 maven 的正常行为,当您跳过某些内容时,插件仍然会被下载,就好像您要使用它一样。还是我做错了让它下载它。

可能是因为有一个名为“Effective POM”的新东西,当我使用 m2eclipse 在 eclipse 中导入我的 maven 项目时,它在插件管理区域中包含了surefire插件 2.4.2 的列表,我无法编辑 Effective POM。在制作 maven 项目时,我以前在 NetBeans 中没有看到过这种情况。

为了工作,我在我的构建配置文件中添加了一个不必要的surefire插件条目,并在那里跳过了测试,并添加了我已经在我的仓库中拥有的版本。我这样做只是为了让我的项目也可以在 eclipse 下构建。否则,我的项目可以在 NetBeans 和简单的命令行中运行,没有任何问题。

任何意见!!

我认为 maven 应该能够首先看到 SKIP 部分,然后继续使用插件。

赛德..

0 投票
2 回答
1531 浏览

maven - 为多模块 Maven 项目测试 POM 中的内容

我在这里阅读了有关使用 Surefire 插件进行单元测试和使用 Failsafe 插件进行集成测试的信息,但我仍然不清楚 POM 在由父模块和多个子模块组成的 Maven 项目中应该如何看待,每个子模块都有自己的 POM 文件.

问题

  • 有没有人在他们的每个模块中实现了集成测试和单元测试?
  • 如果是这样,您能否展示您的 POM,以便我提供一个良好工作配置的示例?
0 投票
2 回答
472 浏览

java - 自动确定 Junit 测试的副作用

我有一组遗留单元测试,其中大部分是 SpringAbstractTransactionalJUnit4SpringContextTests测试,但有些是自己管理事务。不幸的是,这似乎引入了副作用,导致在修改测试数据集时完全不相关的测试失败,即失败的测试在单独运行时工作(使用相同的初始数据集),但在运行时失败整套测试的一部分。

测试通常在常规 Maven 构建期间通过 Maven 的 surefire 插件运行。

我正在寻找的是一种自动排列已执行测试的数量和顺序以找出罪魁祸首的方法。一种幼稚但相当昂贵的方法是采用所有测试的幂集并运行所有可能的组合。更优化的方法将使用现有的测试执行顺序(大部分是随机的,但稳定)并测试所有潜在的有序子集。我知道这个过程的运行时间可能很长。

有没有开箱即用的工具/ Maven 插件可以做到这一点?

0 投票
3 回答
757 浏览

jpa - 使用 Maven 和嵌入式 glassfish 的 CDI 类路径问题

我在将测试源中的 a 注入主源中的服务时遇到EntityManager问题Producer。目的是将这个库嵌入到另一个项目中,该项目将Producer使用它自己的PersistenceContextunitName 定义一个。如果我在主要来源中没有 Producer,我会收到Caused by: java.lang.IllegalStateException: Unable to retrieve EntityManagerFactory for unitName MY_PU错误消息。

例如:

为了让我测试服务,我必须使用 maven ant 插件将 *.class 文件移动到target/classes目录并在打包阶段之前将其删除。这有效,但它很笨拙。我尝试更改了surefire插件中 的<useSystemClassLoader>和参数,但没有成功。<useManifestOnlyJar>

还有其他方法吗?

我的环境

  • Maven:2.2.1
  • 万无一失:2.4.2
  • glassfish 嵌入式全部:3.1.1

编辑

beans.xml 存在于 (test/main)/resources/META-INF

我按如下方式启动 GF 容器。

0 投票
0 回答
371 浏览

java - junit 附加文件到报告

我有一个用 JUnit 编写的测试。如果失败,我想在报告中附加一个文件。

我的想法:我只需要获取路径和报告名称,这样我就可以在它旁边放一个自定义文件,这样就可以很容易地找到它。

如何获取该报告文件或路径名?

附加信息:这些测试通过 Eclipse 或 Jenkins 运行。

更新: 名称可以这样找到:Get name of current execution test in JUnit 4

这条路似乎是一个万无一失的话题......

0 投票
0 回答
811 浏览

maven - 为什么我的测试会泄漏文件描述符?

我正在使用 JUnit 和 Selenium2 来测试我的应用程序。我使用 Maven 和在 Jenkins 中运行的 surefire 插件执行测试。几周后测试很好,我添加了越来越多的测试,现在测试失败并显示以下消息:

我首先以为我只是在我的代码中打开文件,例如使用 WebDriver(和 apache commons IO 复制它们)截屏时:

但是即使删除了屏幕截图记录,问题仍然存在。

你们有什么指示这里有什么问题和/或如何解决这个问题吗?

编辑:

我已经实现了一个 WebdriverPool,以重用 WebDrivers / 浏览器实例。测试完成后,我使用关闭挂钩关闭所有打开的实例:

这可能是问题吗?

0 投票
3 回答
1589 浏览

spring - maven:为不同的配置运行相同的测试

在我的 spring + maven 应用程序中,我为数据访问层创建了一些测试,现在我想针对多个数据源运行这些测试。我有类似的东西:

它当前具有硬编码的配置位置,因此它只能用于一个数据源。两次调用测试并通过两个不同的配置(比如 testAppConfigMysql.xml 和 testMyConfigHsqlDb.xml)的最佳方法是什么?

我已经看到通过系统属性执行此操作的建议。如何告诉 maven 使用不同的系统属性值调用测试两次?

0 投票
3 回答
36074 浏览

testing - TestNG 万无一失,使用 maven 命令行运行套件

是否可以通过 maven 从命令行运行预定义的 xml 套件?

我能够运行一个类或一个特定的测试。但我无法运行套件。

这是我从命令行运行的内容:-->

我确实定义了一个套件,它可以很好地通过 intelliJ 运行,但我不确定如何调用 suite.xml 文件。

或者例如,在测试运行后,testng 创建一个 testng-failed 文件,该文件被设置为再次运行所有失败的测试。

使用 mvn,我将如何启动这个测试套件。