【问题标题】:send parameters from test suite to test case in junit 4在junit 4中将参数从测试套件发送到测试用例
【发布时间】:2011-11-22 00:19:36
【问题描述】:

我有四个 junit 案例,我需要向它们传递一个参数,这对所有案例都是一样的,但是这个参数是在测试套件中以动态方式创建的。如何将测试套件中的参数传递给测试用例中的所有测试?

【问题讨论】:

    标签: java junit junit4 test-suite


    【解决方案1】:

    如果它只是一个字符串参数,您可以设置系统属性并在测试用例中访问它。

    如果您想以编程方式执行此操作,您可以在一个地方执行此操作 System.setProperty("x","123"); 否则您始终可以从命令行将系统属性作为 -Dx=123 传递。

    【讨论】:

    • 谢谢你的回复,但你能解释一下吗,我的意思是如果我有这个类 @RunWith(Suite.class) @SuiteClasses({ TestAddTag.class }) public class AllTests { } 如何传递给测试TestAddTag一个字符串参数?
    • 你能在静态初始化器中试试这个吗?然后@RunWith(Suite.class) @SuiteClasses({ TestAddTag.class }) public class AllTests { static {System.setProperty("x","123");} } 可以在您的测试用例中执行System.getProperty("x")
    • 静态块没有生效,所以我选择了:coderanch.com/t/534637/Testing/…
    • @pulkitsinghal 你是否让它与 junit 4 测试用例一起工作?
    • 这个答案 (stackoverflow.com/a/177069/51292) 对我有用,但每个选项都需要一个套件类。
    【解决方案2】:

    不要使用系统属性,而是尝试使用静态类,在内存中存储一​​个包含您想要的所有信息的类。

    【讨论】:

      【解决方案3】:

      尝试参数化测试。它是一个内置的 JUnit 功能,旨在将参数传递给测试用例中的所有测试。示例见以下链接:

      https://github.com/junit-team/junit4/wiki/Parameterized-tests

      【讨论】:

        猜你喜欢
        • 2013-11-04
        • 2010-10-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多