Junit4中是否有方法将一些预初始化的数据(如http连接)传递给所有子(即套件)测试类,这些数据是使用带有“@RunWith(Suite.class)”注释的类中的“@ClassRule”初始化的?还有,如何确保套件中的类不能单独运行?
例如
class A {
private HttpClient client;
@Test
public void someTest() {
client.execute(...);
...
}
}
@RunWith(Suite.class)
@Suite.SuiteClasses({A.class})
public class Suite {
private static HttpClient client;
@ClassRule
public static ExternalResource resource= new ExternalResource() {
@Override
protected void before() throws Throwable {
client = new DefaultHttpClient();
}
}
谢谢,
帕迪
当您使用JUnit的开箱即用的Runner
时,您将获得从测试Suite
到其子测试的任何访问权限。测试类的实例化是在框架内部完成的。
如果您想将信息/状态从一个测试传递到另一个测试,我想实现某种“上下文”。E、 g.一个具有静态Getter和Setter的单件,用于上下文,允许套件存储对象,并在以后的测试中读取。
我认为用JUnit无法做到这一点。
我看到的唯一可能性是使用一个抽象类并在每个测试类中继承该类。
public abstract class AbstractTest {
@ClassRule
public static ExternalResource resource= new ExternalResource() {
//...
}
}
public class MyTest extends AbstractTest {
}
还有如何确保套件中的类不能单独运行?
我认为那也不可能。
但你为什么要这样?修复一个失败的测试后,是否确实要重新运行所有测试以检查一个测试是否正常工作?(当然,修复可能会带来副作用,但当您知道修复测试正在运行时,可以重新运行所有测试。)此外,测试应该能够独立运行。
主要内容:1 概述,2 创建简单的Maven项目,3 项目包装结构,4 更新pom.xml文件中的JUnit依赖关系,5 创建LoginService.java和LoginServiceTest.java,,6.创建UserService.java和UserServiceTest.java,7 创建测试套件,8 结论1 概述 在本指南中,我们将学习如何一次运行多个测试类。将Suite用作运行程序可以使您手动构建一个包含许多类测试的套件。它等效于JUnit 3.8.x静态Test suite()方
我有两个TestSuite类(和) 他们看起来是这样的: 如何并行运行它们?我运行一个这样的测试$mvn class test-Dtest=TestSuiteOne 但我如何同时运行它们呢?
主要内容:1 参数化测试的介绍,2 使用@Parameter进行字段注入而不是构造函数,3 使用单个参数进行测试,4 识别单个测试用例1 参数化测试的介绍 自定义流道参数化实现参数化测试。运行参数化测试类时,将为测试方法和测试数据元素的叉积创建实例。 例如,要测试斐波那契函数,请编写: FibonacciTest的每个实例都将使用二元参数构造函数和方法中的数据值构造 @Parameters 。 2 使用@Parameter进行字段注入而不是构造函数 也可以将数据值直接注入字段中,而无需使用@Pa
在将一些测试从JUnit迁移到TestNG时,我遇到了一个问题,因为这些测试框架处理它们的测试类实例的方式不同。 JUnit为每个测试方法创建一个新的测试类实例。所以我看到的一个常见模式是: 相比之下,TestNG对所有测试方法使用测试类的单个实例。所以上面的模式行不通!因为数据存储在实例字段中,所以值不再是孤立的。如果启用了并行执行,这可能会导致在测试中覆盖数据。 那么我该如何使用TestNG呢
在JUnit 4中,通过使用注释很容易跨一堆类测试不变量。关键是一组测试正在针对单个参数列表运行。 如何在JUnit 5中复制这一点,而不使用JUnit-vintage? 不适用于测试类。听起来可能是合适的,但该注释的目标也是一个方法。 此类 JUnit 4 测试的一个示例是:
问题内容: 在JUnit4中可以吗? 在JUnit3中,我将执行以下操作: 问题答案: takari-cpsuite(最初由Johannes Link 开发)提供了一个适合您需求的classpath- suite。它允许通过正则表达式对Classpath中的类进行过滤,例如: