【问题标题】:junit: could not find test classjunit:找不到测试类
【发布时间】:2014-03-09 02:25:41
【问题描述】:

我在这里和其他地方查看了重复的问题,包括 JUnit 常见问题解答 (http://junit.sourceforge.net/doc/faq/faq.htm#running_1)。

junit-4.10.jar 位于 /Library/Java/Extensions,它自动位于类路径中。

我的测试类在我的工作目录中编译。它不是任何软件包的一部分。但是,这些都不起作用:

java org.junit.runner.JUnitCore TestBoard
java -cp . org.junit.runner.JUnitCore TestBoard

两者都返回:

JUnit version 4.10
Could not find class: TestBoard

Time: 0.001

OK (0 tests)

【问题讨论】:

  • TestBoard 是您的类的完整名称吗(即,TestBoard 不是包的一部分)?
  • TestBoard.class 存在于何处以及在何处从(目录)运行此 java 命令?
  • @ApprenticeQueue TestBoard 是类的完整名称,不是包的一部分。
  • @Vikdor TestBoard.class 与我运行java 命令的目录相同。
  • 我遇到了完全相同的问题。这个问题已经在 StackOverflow 上发布了很多次,但没有一个答案有帮助。这一个甚至没有回答!

标签: java junit


【解决方案1】:

确定这是 JUnit 问题还是您的类和/或类路径问题的最佳方法是将 main 方法添加到您的测试类:

public class TestBoard extends TestCase {

  public void testThatShouldFail() {
    fail();
  }

  public static void main(String[] args) {
    System.err.println("Hello World!");
  }
}

然后就可以运行了:

javac TestBoard.java
java TestBoard

如果这不打印“Hello World!”那么这是您的环境(类路径问题等)或您的测试类的问题。

我最好的猜测是你忘记公开课程了。

【讨论】:

    【解决方案2】:

    最近我的 junits 测试也遇到了类似的问题。运行测试(在我的例子中是'mvn test')导致了几种误导性的异常。 事实证明,我在我的项目中使用了 jdk 1.6。当我切换到 jdk 1.7 时,一切都结束了。

    【讨论】:

      猜你喜欢
      • 2017-08-30
      • 1970-01-01
      • 1970-01-01
      • 2012-07-08
      • 2019-03-19
      • 2020-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多