当前位置: 首页 > 面试题库 >

在Junit-4.11中找不到课程

颛孙轩昂
2023-03-14
问题内容

我在Mac上配置了Junit-4.11,编译javac没有错误,但是当我运行时java,我得到了Could not find class: HelloWorldTest

这是我HelloWorld.javaHelloWorldTest.java

import java.util.*;

public class HelloWorld {
    public String output() {
        return "Hello world!";
    }
}

import static org.junit.Assert.*;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.Test;
import java.util.*;
import org.junit.*;

public class HelloWorldTest {
    public HelloWorld helloworld = new HelloWorld();

    @BeforeClass
    public static void oneTimeSetUp() {
        System.out.println("@BeforeClass - oneTimeSetUp");
    }
    @AfterClass
    public static void oneTimeTearDown() {
        System.out.println("@AfterClass - oneTimeTearDown");
    }
    @Before
    public void setUp() {
        System.out.println("@Before - setUp");
    }
    @After
    public void tearDown() {
        System.out.println("@After - tearDown");
    }
    @Test
    public void testOutput() {
        assertEquals(helloworld.output(), "Hello world!");
        System.out.println("@Test - testOutput");
    }
}

和我一起

javac -classpath ./ HelloWorldTest.java

java -classpath ./ org.junit.runner.JUnitCore HelloWorldTest

我得到的是

JUnit version 4.11
Could not find class: HelloWorldTest

Time: 0.002

OK (0 tests)

junit-4.11.jarHelloWorld.java和放在当前目录中HelloWorldTest.java,也把它放在/
Library / Java / Extensions中

我试图解决的问题是设置JAVA_HOMEand CLASSPATH,但是没有用。

有人可以指出出什么问题了吗?我真的很困惑。

谢谢。

好吧,我已经通过以下步骤解决了我的问题。我的Mac是Mac OSX
10.8,我使用了Apple提供的JVM-1.6。您可以单击此处下载它。

  1. 删除CLASSPATH我的.zshrc文件中的(如果您正在使用,Bash我认为是.bashrc
  2. 删除中的JUnit-4.11.jar(或您使用的任何版本)/Library/Java/Extensions以及放置在其中的任何系统目录。
  3. 尝试再次编译并运行它。

我设置JAVA_HOME/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home

谢谢。


问题答案:

更新 :原始海报的解决方案埋在下面的评论中。这与没有junit
jar文件有关/Library/Java/Extensions,并且没有CLASSPATH

我删除了.zshrc文件中的CLASSPATH,还删除了/ Library / Java / Extensions和/ Library / Java /
Home / lib / ext中的junit-4.11.jar,然后JUnit-4.11起作用了。

在临时目录中(来自您问题的Java文件):

HelloWorld.java
HelloWorldTest.java
junit-4.11.jar
hamcrest-core-1.3.jar

然后:

  • javac -cp junit-4.11.jar *.java
  • java -cp junit-4.11.jar:hamcrest-core-1.3.jar:. org.junit.runner.JUnitCore HelloWorldTest

输出:

HelloWorldTest
JUnit version 4.11
@BeforeClass - oneTimeSetUp
.@Before - setUp
@Test - testOutput
@After - tearDown
@AfterClass - oneTimeTearDown

Time: 0,004

OK (1 test)

我建议从头开始重试



 类似资料:
  • 问题内容: 我正在尝试编译与Hexagon.java相同的程序包(和目录)中的Board.java,但出现此错误: Board.java的前几行: Hexagon.java的前几行: 我只是看不到我在做什么错。有任何想法吗? 谢谢 问题答案: 我很确定您是从错误的目录中进行编译。 您应该从 源根目录进行 编译 ,而不是从oadams_atroches目录中进行编译。 看一下这个bash会话: 如果

  • 所以我是JUnit的新手,我们必须用它来做家庭作业。我们的教授给了我们一个有一个测试类的项目。当我右键单击>Run as>JUnit Test,我会弹出一个错误,上面写着‘找不到JUnit tests’。我知道这里已经回答了这个问题(没有找到测试运行程序'JUnit4'的测试),但是关闭eclipse、重新启动、清理和构建似乎不起作用。下面是我的运行配置、构建路径和我试图测试的类的截图。

  • 我试图用junit运行cucumber testRunner,但我得到了“没有发现后端”异常。我发现了类似的exeception解决方案,但它们会得到运行时异常,而我的解决方案与该异常不同。有人能调查一下吗。 我的pom文件中有所有的依赖项,请找到下面的依赖项详细信息

  • 问题内容: 我正在使用登录功能,但是遇到了我无法弄清的错误。 这是我的模型登录类: 最后一个函数给出错误“ 在类中找不到方法’close’ ”,“ 在主题类中找不到引用的方法。 ” 这是我的数据库类: 路径是正确的,事实并非如此。可能是什么错误? 问题答案: PhpStorm无法确定您的字段是什么类型。您可以通过简单的PHPDoc注释提供typehint来提供帮助:

  • 我正在将一个测试从JUnit4更新到JUnit5(Jupiter)。 在等普通注释调整中,我使用来运行@mocks。 代码如下所示: 我在以下注释:https://stackoverflow.com/a/49655834/2182500中看到,此错误可能是由于在项目POM中有不同版本的作为依赖项,而在使用的运行范围中有不同版本的。 所以我保证为Jupiter导入相同的版本依赖项,但我仍然看到相同的

  • 问题内容: 有什么方法可以通过teardown()方法获取测试结果?我想根据结果在测试后进行清理。 在junit文档中找不到太多详细信息。 问题答案: 与您要求的最接近的东西可能是TestWatcher规则。那将不能让您访问返回的结果或其他任何东西,但是您可以使用它(或创建自己的TestRule并与Description对象结合使用,可以对方法进行不同的注释,以指示需要进行哪种清理。