【发布时间】:2011-11-22 00:19:36
【问题描述】:
我有四个 junit 案例,我需要向它们传递一个参数,这对所有案例都是一样的,但是这个参数是在测试套件中以动态方式创建的。如何将测试套件中的参数传递给测试用例中的所有测试?
【问题讨论】:
标签: java junit junit4 test-suite
我有四个 junit 案例,我需要向它们传递一个参数,这对所有案例都是一样的,但是这个参数是在测试套件中以动态方式创建的。如何将测试套件中的参数传递给测试用例中的所有测试?
【问题讨论】:
标签: java junit junit4 test-suite
如果它只是一个字符串参数,您可以设置系统属性并在测试用例中访问它。
如果您想以编程方式执行此操作,您可以在一个地方执行此操作 System.setProperty("x","123"); 否则您始终可以从命令行将系统属性作为 -Dx=123 传递。
【讨论】:
@RunWith(Suite.class) @SuiteClasses({ TestAddTag.class }) public class AllTests { static {System.setProperty("x","123");} } 可以在您的测试用例中执行System.getProperty("x")。
不要使用系统属性,而是尝试使用静态类,在内存中存储一个包含您想要的所有信息的类。
【讨论】:
尝试参数化测试。它是一个内置的 JUnit 功能,旨在将参数传递给测试用例中的所有测试。示例见以下链接:
https://github.com/junit-team/junit4/wiki/Parameterized-tests
【讨论】: