0

我正在使用 以编程方式运行一些 JUnit 测试JUnitCore,并且我想在测试类完成后从测试类中获取一些数据(所以@AfterClass)。这是我正在处理的约束的伪代码示例:

public class A {
    public static String testData;       

    public static void runTest() {
        JUnitCore juc = new JUnitCore();
        juc.run(B);

        // This is where I would like to access testData for this 
        // particular run
    }

    public static void setTestData(String s) {
        testData = s;
    }
}

public class B {
    // Some @Test methods and stuff omitted

    @AfterClass
    public static void done(String s) {
        A.setTestData(someData);
    }
}

我的问题是不同的线程可能正在调用runTest(),所以testData可能是错误的。我该如何解决这个问题?我迷路了。

4

1 回答 1

0

如果你真的需要/想要采用这种设计,你可以制作testData一个java.lang.ThreadLocal<String>. 这将解决多线程问题。

于 2013-06-22T22:28:51.547 回答