【发布时间】:2011-05-26 11:45:11
【问题描述】:
你好 我有一个让我发疯的问题。我创建了一个尝试实例化对象的单元测试。如果不能,则抛出异常
try{
testObject = new Target(2,4,true);
}
catch(Exception e){
AssertionError ae = new AssertionError("Unable to create a target");
ae.initCause(e);
throw ae;
}
然后我把它放到了一个 JUnit 测试套件中。如果我选择套件,或者单独选择测试并单击运行,我不会遇到任何问题。
另一方面,在 Eclipse IDE 中,如果我右键单击整个项目文件夹并单击运行 JUnit 测试,那么正在通过的测试现在会出现诸如 indexoutofbounds 之类的错误。此测试不访问任何外部文件?那么运行位置如何有所作为。 Eclipse 在这里做了什么奇怪的事情吗?
另外,有没有办法让单个测试不运行一次,然后在到达测试套件文件时再次运行。
testCreateTarget(unit.targetTest) java.lang.AssertionError:无法创建目标 在 unit.targetTest.testCreateTarget(TargetTest.java:26) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(未知来源) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源) 在 java.lang.reflect.Method.invoke(未知来源) 在 junit.framework.TestCase.runTest(TestCase.java:154) 在 junit.framework.TestCase.runBare(TestCase.java:127) 在 junit.framework.TestResult$1.protect(TestResult.java:106) 在 junit.framework.TestResult.runProtected(TestResult.java:124) 在 junit.framework.TestResult.run(TestResult.java:109) 在 junit.framework.TestCase.run(TestCase.java:118) 在 junit.framework.TestSuite.runTest(TestSuite.java:208) 在 junit.framework.TestSuite.run(TestSuite.java:203) 在 junit.framework.TestSuite.runTest(TestSuite.java:208) 在 junit.framework.TestSuite.run(TestSuite.java:203) 在 org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130) 在 org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) 引起:java.lang.IndexOutOfBoundsException:索引:1,大小:0
【问题讨论】:
-
您能否向我们展示其中一个意外错误的堆栈跟踪?
-
这就是你所追求的吗?