我正在使用JUnitCore以编程方式运行一些JUnit测试,我希望在测试类完成后(所以是@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可能是错误的。我该如何解决这个问题?我太迷茫了。
发布于 2013-06-23 06:28:52
如果你真的需要/想要使用这种设计,你可以让testData成为一个java.lang.ThreadLocal<String>。这将解决多线程问题。
https://stackoverflow.com/questions/17222583
复制相似问题