【问题标题】:Eclipse, and JUnit. Tests passing/failing depending on where they are run from?Eclipse 和 JUnit。测试通过/失败取决于它们从哪里运行?
【发布时间】: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

【问题讨论】:

  • 您能否向我们展示其中一个意外错误的堆栈跟踪?
  • 这就是你所追求的吗?

标签: java junit


【解决方案1】:

问题是预先执行的测试改变了程序的状态。似乎有某种连续执行的测试,修改后的变量一直保留

【讨论】:

    猜你喜欢
    • 2011-10-23
    • 1970-01-01
    • 1970-01-01
    • 2014-11-24
    • 2011-08-30
    • 1970-01-01
    • 2013-11-08
    • 2010-10-12
    • 2011-05-16
    相关资源
    最近更新 更多