问题标签 [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.
junit - 使用 JUnit 理论添加测试
有没有办法使用规则来添加额外的测试?例如,我想将 Theories 运行器转换为规则,但我一直无法找到让规则添加额外测试的方法。
java - 自定义并向 junit 结果添加更多信息
我有方法文档中提到的具有唯一 id 的 junit 测试用例。例如,在以下测试用例中是 XNH233T
现在,如何将每个测试用例的 ID 写入测试结果?我知道有一种方法可以自定义结果。我喜欢为结果中的每个测试标签添加一个子节点,例如
我不太熟悉junit报告的生成方式。如果有人能就如何完成上述任务提出建议,那就太好了。
java - 将 JUnit 4 与 HierarchicalContextRunner 和 JUnitParamsRunner 一起使用
我想用 JUnit4 创建以下测试类:
我想同时使用 和 的工具HierarchicalContextRunner
,JUnitParamsRunner
因为它们在创建可读的单元测试时很方便。JUnit 给出了这个编译错误:
什么可能是一个合理的解决方案?
java - 如何参数化junit测试套件
是否可以在 junit 4 中参数化 TestSuite ?
为了将一个类声明为测试套件,我需要注释@RunWith(Suite.class)
,但也需要相同的注释来将测试声明为参数化:@RunWith(Parameterized.class)
所以我不能将两者都添加到同一个类中。
我在这个网站上发现了一个类似的问题,但没有多大帮助。到目前为止,我找到的所有示例都解释了如何参数化简单的单元测试,而不是完整的测试套件。
eclipse - 如何阻止 @Unrolled Spock 测试在 Eclipse Junit 视图中显示为“无根测试”?
一位同事最近在我们团队的项目中引入了 Spock 单元测试,我在其 Eclipse 集成中遇到了一个烦人的问题:每当我们创建参数化测试并在其上使用 @Unroll 注释时,Eclipse JUnit 视图就会失去与测试类并在“无根测试”下显示结果。
例如,这个测试类的结果:
以这种方式显示:
如何让展开的测试用例(例如“展开的测试 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
java - 当我有一个使用 @RunWith 的测试套件时,如何获得更多的日志记录反馈?
我有一个自定义测试运行器来运行我的部分测试,因此我可以将测试分布在不同的詹金斯节点上。如果我所有的集成测试都运行了,那将需要一个小时。所以我有 3 台服务器运行 1/3 的测试,总共只需要 20 分钟。这是我的套房的外观:
这种工作,除非我尝试在不同的模块中使用多个 DistibutedIntegrationTestRunners 并一次运行它们,“事情不起作用”。通常我不会在 SO 上发布含糊不清的投诉,但很难弄清楚更多,因为这段代码没有给出太多反馈。这是我得到的唯一日志:
这发生在任何测试运行之前。如果我可以获得比这更多的日志记录,那将非常有用。例如,如果我可以在测试运行之前打印出“我即将运行 FooTest”,那将非常有用。有没有办法做到这一点?
我浏览了源代码,发现 中有一个名为 的字段private final RunNotifier fNotifier;
,org.junit.internal.runners.JUnit38ClassRunner
但我不确定如何使用它,或者我是否会朝着正确的方向前进。
我使用的是 JUnit 4.10,但如有必要,我可以升级。
android - RobolectricTestRunner 如何创建 Robolectric.application?
我需要从 Robolectric 项目自定义 RobolectricTestRunner,但我发现了一个我不理解的奇怪行为:
RobolectricTestRunner
包含methodBlock
调用
ParallelUniverse类setUpApplicationState(bootstrappedMethod, parallelUniverseInterface, strictI18n, systemResourceLoader, appManifest, config);
的方法执行setUpApplicationState
。
在第 146 行,setupApplicationState
执行application.onCreate();
当我调试应用程序时,当我在第 146 行检查 Robolectric.application 值时,我看到它已成功创建,但如果我在 RobolectricTestRunner 类中检查相同的值,则在以下行之后:220, Robolectric.application是空的...为什么?这是一个静态值..我无法理解!
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()
很烦人。
所以我查看了ClasspathSuite
Runner,它允许将类路径中的所有类放在每个套件中,并在之后过滤它们@Category
它还提供了一个@BeforeSuite
注解,该注解在套件启动时启动一次。
=> 一切都近乎完美。
- 启动单个测试时,将启动
@BeforeClass
from this test - 当 a
Test Suite
被启动时,正确Tests
的被启动(感谢@Category
),@BeforeSuite
只被调用一次,但是@BeforeClass
每个 Test 的 也被调用,它不应该被调用。
=> 所有这些都让我开始考虑实现我自己的 Runner。我尝试扩展 ClasspathSuite Runner,但它不是为此而设计的。我尝试扩展库存的 Suite Runner,但没有成功。
你能帮我理解如何在 JUnit Runner 中实现这些要求吗?
java - 如何在 Cucumber-JVM 中并行运行场景?
我有一组为 Cucumber-JVM 编写的验收测试。为了减少反馈时间,我想并行运行(功能的)场景。我该如何以最简单,最方便的方式做到这一点?
(我希望能够在 Java 代码中表达这一点,作为常规的 JUnit 测试/运行程序,即我不希望使用需要(?)旋转和之后合并 Cucumber 报告。)
junit - 如何判断是否从 JUnit 调用?
我认为被测试的一段代码不应该知道它正在被测试。因此,这个问题代表了一种反模式,但我需要以“如果从 JUnit 集成测试调用”的特定方式配置遗留应用程序。如果您认为这听起来像是一个不使用 CDI 的应用程序,那么您是对的。
我总是可以遍历堆栈,看看我是否是从 JUnit 调用的。我希望有更优雅的东西。