public class A {
private static String var;
public static void main(String []args) {
var = args[0];
System.out.println(var); //1
JunitCore.main("path.A");
}
@Test
public void test() {
System.out.println(var); //2
}
}
我的代码与上面类似。我希望通过命令行传递的值可以打印在1
和2
个案例中。但是,即使我在main方法中设置了变量,也会打印2
null
。为什么会发生这种情况?这个问题的解决方案是什么?
答案 0 :(得分:1)
将主方法的最后一行更改为:
JUnitCore.runClasses(A.class);
答案 1 :(得分:1)
我发现此代码按预期工作。
$ ls path/
A.class
$ echo $CLASSPATH
.:/extra/JUnit/junit-4.12.jar:/extra/JUnit/hamcrest-core-1.3.jar
$ java path.A xyz
from main: xyz
JUnit version 4.12
.xyz
Time: 0.003
OK (1 test)
仅进行了更改
package path;
import org.junit.runner.JUnitCore;
import org.junit.*;
建议
JUnitCore.runClasses(A.class);
也生成第二个println,但方法测试不作为JUnit测试运行。