问题标签 [junit-runner]

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 投票
0 回答
90 浏览

junit - 使用 JUnit 理论添加测试

有没有办法使用规则来添加额外的测试?例如,我想将 Theories 运行器转换为规则,但我一直无法找到让规则添加额外测试的方法。

0 投票
0 回答
319 浏览

java - 自定义并向 junit 结果添加更多信息

我有方法文档中提到的具有唯一 id 的 junit 测试用例。例如,在以下测试用例中是 XNH233T

现在,如何将每个测试用例的 ID 写入测试结果?我知道有一种方法可以自定义结果。我喜欢为结果中的每个测试标签添加一个子节点,例如

我不太熟悉junit报告的生成方式。如果有人能就如何完成上述任务提出建议,那就太好了。

0 投票
1 回答
795 浏览

java - 将 JUnit 4 与 HierarchicalContextRunner 和 JUnitParamsRunner 一起使用

我想用 JUnit4 创建以下测试类:

我想同时使用 和 的工具HierarchicalContextRunnerJUnitParamsRunner因为它们在创建可读的单元测试时很方便。JUnit 给出了这个编译错误:

什么可能是一个合理的解决方案?

0 投票
7 回答
12749 浏览

java - 如何参数化junit测试套件

是否可以在 junit 4 中参数化 TestSuite ?

为了将一个类声明为测试套件,我需要注释@RunWith(Suite.class),但也需要相同的注释来将测试声明为参数化:@RunWith(Parameterized.class)所以我不能将两者都添加到同一个类中。

我在这个网站上发现了一个类似的问题,但没有多大帮助。到目前为止,我找到的所有示例都解释了如何参数化简单的单元测试,而不是完整的测试套件。

0 投票
1 回答
2478 浏览

eclipse - 如何阻止 @Unrolled Spock 测试在 Eclipse Junit 视图中显示为“无根测试”?

一位同事最近在我们团队的项目中引入了 Spock 单元测试,我在其 Eclipse 集成中遇到了一个烦人的问题:每当我们创建参数化测试并在其上使用 @Unroll 注释时,Eclipse JUnit 视图就会失去与测试类并在“无根测试”下显示结果。

例如,这个测试类的结果:

以这种方式显示:

使用 @Unroll 注释的 Spock 测试显示在

如何让展开的测试用例(例如“展开的测试 1”)像“未展开的测试”一样显示在“test.TestSockTest”下?我的 Spock 测试是否有一些 Eclipse JUnit 插件可以理解的命名约定?

我正在使用:

  • 日食开普勒 SR1
  • spock-core-0.7-groovy-2.0
  • Jspresso Spock 插件 2.71
  • Groovy-Eclipse 插件 2.8
  • JUnit 4.8.2
0 投票
1 回答
84 浏览

java - 当我有一个使用 @RunWith 的测试套件时,如何获得更多的日志记录反馈?

我有一个自定义测试运行器来运行我的部分测试,因此我可以将测试分布在不同的詹金斯节点上。如果我所有的集成测试都运行了,那将需要一个小时。所以我有 3 台服务器运行 1/3 的测试,总共只需要 20 分钟。这是我的套房的外观:

这种工作,除非我尝试在不同的模块中使用多个 DistibutedIntegrationTestRunners 并一次运行它们,“事情不起作用”。通常我不会在 SO 上发布含糊不清的投诉,但很难弄清楚更多,因为这段代码没有给出太多反馈。这是我得到的唯一日志:

这发生在任何测试运行之前。如果我可以获得比这更多的日志记录,那将非常有用。例如,如果我可以在测试运行之前打印出“我即将运行 FooTest”,那将非常有用。有没有办法做到这一点?

我浏览了源代码,发现 中有一个名为 的字段private final RunNotifier fNotifier;org.junit.internal.runners.JUnit38ClassRunner但我不确定如何使用它,或者我是否会朝着正确的方向前进。

我使用的是 JUnit 4.10,但如有必要,我可以升级。

0 投票
2 回答
159 浏览

android - RobolectricTestRunner 如何创建 Robolectric.application?

我需要从 Robolectric 项目自定义 RobolectricTestRunner,但我发现了一个我不理解的奇怪行为:

RobolectricTestRunner 包含methodBlock调用 ParallelUniversesetUpApplicationState(bootstrappedMethod, parallelUniverseInterface, strictI18n, systemResourceLoader, appManifest, config); 的方法执行setUpApplicationState

在第 146 行,setupApplicationState执行application.onCreate(); 当我调试应用程序时,当我在第 146 行检查 Robolectric.application 值时,我看到它已成功创建,但如果我在 RobolectricTestRunner 类中检查相同的值,则在以下行之后:220, Robolectric.application是空的...为什么?这是一个静态值..我无法理解!

0 投票
1 回答
558 浏览

java - 如何编写在@Category 中的TestCase 之前运行@BeforeCategory 方法的JUnit 运行器?

我正在尝试编写一个特定的 JUnit Runner,但我没有在网上找到好的教程/示例。

要求如下:

  • 我将进行一些分类测试(例如,catA 类别中的 A.java,catA 类别中的 B.java,catC 类别中的 C.java
  • 如果单独启动测试,每个测试都有一个@BeforeClass需要运行的方法
  • 启动同一类别的所有测试时,该@BeforeClass方法只能启动一次。
  • Junit 测试中的每个 @Test 方法也有@Before@After方法。

话虽如此,我查看了可用的不同选项。

我首先Test Suites使用提供的 junit Suite Runner 创建代表我的测试类别的类别。( @RunWith(Suite.class)) 您需要Tests在套件中手动提供,使用起来@SuiteClasses()很烦人。

所以我查看了ClasspathSuiteRunner,它允许将类路径中的所有类放在每个套件中,并在之后过滤它们@Category

它还提供了一个@BeforeSuite注解,该注解在套件启动时启动一次。

=> 一切都近乎完美。

  • 启动单个测试时,将启动@BeforeClassfrom this test
  • 当 aTest Suite被启动时,正确Tests的被启动(感谢@Category),@BeforeSuite只被调用一次,但是@BeforeClass每个 Test 的 也被调用,它不应该被调用。

=> 所有这些都让我开始考虑实现我自己的 Runner。我尝试扩展 ClasspathSuite Runner,但它不是为此而设计的。我尝试扩展库存的 Suite Runner,但没有成功。

你能帮我理解如何在 JUnit Runner 中实现这些要求吗?

0 投票
1 回答
4217 浏览

java - 如何在 Cucumber-JVM 中并行运行场景?

我有一组为 Cucumber-JVM 编写的验收测试。为了减少反馈时间,我想并行运行(功能的)场景。我该如何以最简单,最方便的方式做到这一点?

(我希望能够在 Java 代码中表达这一点,作为常规的 JUnit 测试/运行程序,即我不希望使用需要(?)旋转和之后合并 Cucumber 报告。)

0 投票
1 回答
49 浏览

junit - 如何判断是否从 JUnit 调用?

我认为被测试的一段代码不应该知道它正在被测试。因此,这个问题代表了一种反模式,但我需要以“如果从 JUnit 集成测试调用”的特定方式配置遗留应用程序。如果您认为这听起来像是一个不使用 CDI 的应用程序,那么您是对的。

我总是可以遍历堆栈,看看我是否是从 JUnit 调用的。我希望有更优雅的东西。