Junit - java.lang.Exception:没有可运行的方法

时间:2013-05-29 12:49:45

标签: junit4 runnable

我正在使用驱动程序类执行有关执行服务器测试用例的教程。 Eclipse错误窗格显示错误消息:java.lang.Exception:没有可运行的方法。发生错误消息时 驱动程序类试图运行exceptionTesting类。

根据这篇文章发表:java.lang.exception no runnable methods junit。似乎@Test注释应该在测试类中使用,或者将Junit Jar文件更新到最新版本将解决问题。

Junit Jar文件版本:4.11

请查看我的代码并告诉我应该做些什么修改以避免错误消息。谢谢!

驱动程序类:

import org.junit.runner.*;
import org.junit.runners.Suite;

 @RunWith(Suite.class)
 @Suite.SuiteClasses({
     basicAnnotation.class,
     personTest.class,
     exceptionTesting.class
 })
public class UnitTestDriver {

} 

exceptionTesting class

import org.junit.*;
import org.junit.Test;


public class exceptionTesting 
{
  public class junitTest2{
      @Test (expected = ArithmeticException.class)
      public void divisionWithException(){
          int i = 1/0;
      }

  }
}

1 个答案:

答案 0 :(得分:3)

问题是junitTest2嵌套在exceptionTesting中。您有两种选择来解决它:

1)摆脱在顶级课程中进行测试的内部课程:

import org.junit.*;
import org.junit.Test;


public class exceptionTesting 
{
      @Test (expected = ArithmeticException.class)
      public void divisionWithException(){
          int i = 1/0;
      }
}

2)让您的顶级课程指定附带的测试并使您的内部类静态:

import org.junit.*;
import org.junit.Test;

@RunWith(Enclosed.class)
public class exceptionTesting 
{
  public static class junitTest2{
      @Test (expected = ArithmeticException.class)
      public void divisionWithException(){
          int i = 1/0;
      }

  }
}

除非你有理由需要内部阶级,否则#1是更好的选择。另请注意,在Java中,约定是以大写名称开始类。因此,exceptionTesting将成为ExceptionTesting。