Java 未找到JUnitCore类

Java 未找到JUnitCore类,java,unit-testing,junit,filenames,Java,Unit Testing,Junit,Filenames,我试图从用户那里获取一个字符串/class/file/name,用于指定在哪个类上运行Junit测试。它编译并运行,但是Junit测试说找不到类,并给我一个错误。我不知道如何着手解决这个问题 import java.util.Scanner; import junit.framework.*; import org.junit.runner.JUnitCore; public class Utf extends TestCase { public static void main(St

我试图从用户那里获取一个字符串/class/file/name,用于指定在哪个类上运行Junit测试。它编译并运行,但是Junit测试说找不到类,并给我一个错误。我不知道如何着手解决这个问题

import java.util.Scanner;
import junit.framework.*;
import org.junit.runner.JUnitCore;

public class Utf extends TestCase
{
    public static void main(String[] args)
    {
        /*
         * creates and reads from scanner
         */
        Scanner in = new Scanner(System.in);
        String filename = in.nextLine();

        /*
         * gets Tester class' name and stores it as a String
         */
        String className = Tester.class.getName();

        /*
         * if user input String matches Tester class' name then run tests
         * else File Not Found
         */
        if (filename == className) {JUnitCore.main(className);}
        else {System.out.println("File not Found");}
        /*
         * closes scanner
         */
        in.close();

    }
}

public class Tester
{
    /*
     * tests StudentConstructor() method
     */
    public void testStudentConstructor() throws Exception
    {
        try
        {
            String uid = "000";
            String name = "Test Student";
            String email = "test@test.com";
            Student s = new Student(uid, name, email);
            assert (s.getUid() == uid);
            assert (s.getName() == name);
            assert (s.getEmail() == email);
        }
        catch(NullPointerException e){System.out.println("testStudentConstructor() failed: NullPointerException:" + e.getMessage());}
        catch(IllegalArgumentException e){System.out.println("testStudentConstructor() failed: IllegalArgumentException:" + e.getMessage());}
        catch(UnsupportedOperationException e){System.out.println("testStudentConstructor() failed: UnsupportedOperationException:" + e.getMessage());}
    };

    /*
     * tests StudentToString() method
     */
    public void testStudentToString() throws Exception
    {
        try
        {
            String uid = "000";
            String name = "Test Student";
            String email = "test@test.com";
            Student s = new Student(uid, name, email);
            s.studentToString(s);
        }
        catch(NullPointerException e) {System.out.println("testStudentToString() failed: NullPointerException:" + e.getMessage());}
        catch(IllegalArgumentException e){System.out.println("testStudentToString() failed: IllegalArgumentException:" + e.getMessage());}
        catch(UnsupportedOperationException e){System.out.println("testStudentToString() failed: UnsupportedOperationException:" + e.getMessage());}
    }

    /*
     * tests GetUid() method
     */
    public void testGetUid() throws Exception
    {
        try
        {
            String uid = "000";
            String name = "Test Student";
            String email = "test@test.com";
            Student s = new Student(uid, name, email);
            assert (s.getUid() == uid);
        }
        catch(NullPointerException e) {System.out.println("testGetUid() failed: NullPointerException:" + e.getMessage());}
        catch(IllegalArgumentException e){System.out.println("testGetUid() failed: IllegalArgumentException:" + e.getMessage());}
        catch(UnsupportedOperationException e){System.out.println("testGetUid() failed: UnsupportedOperationException:" + e.getMessage());}
    }

    /*
     * tests GetName() method
     */
    public void testGetName() throws Exception
    {
        try
        {
            String uid = "000";
            String name = "Test Student";
            String email = "test@test.com";
            Student s = new Student(uid, name, email);
            assert (s.getName() == name);
        }
        catch(NullPointerException e) {System.out.println("testGetName() failed: NullPointerException:" + e.getMessage());}
        catch(IllegalArgumentException e){System.out.println("testGetName() failed: IllegalArgumentException:" + e.getMessage());}
        catch(UnsupportedOperationException e){System.out.println("testGetName() failed: UnsupportedOperationException:" + e.getMessage());}
    }

    /*
     * tests GetEmail() method
     */
    public void testGetEmail() throws Exception
    {
        try
        {
            String uid = "000";
            String name = "Test Student";
            String email = "test@test.com";
            Student s = new Student(uid, name, email);
            assert (s.getEmail() == email);
        }
        catch(NullPointerException e) {System.out.println("testGetEmail() failed: NullPointerException:" + e.getMessage());}
        catch(IllegalArgumentException e){System.out.println("testGetEmail() failed: IllegalArgumentException:" + e.getMessage());}
        catch(UnsupportedOperationException e){System.out.println("testGetEmail() failed: UnsupportedOperationException:" + e.getMessage());}
    };
}

junit.framework.AssertionFailedError: No tests found in Utf
    at junit.framework.Assert.fail(Assert.java:57)
    at junit.framework.TestCase.fail(TestCase.java:227)
    at junit.framework.TestSuite$1.runTest(TestSuite.java:100)
    at junit.framework.TestCase.runBare(TestCase.java:141)
    at junit.framework.TestResult$1.protect(TestResult.java:122)
    at junit.framework.TestResult.runProtected(TestResult.java:142)
    at junit.framework.TestResult.run(TestResult.java:125)
    at junit.framework.TestCase.run(TestCase.java:129)
    at junit.framework.TestSuite.runTest(TestSuite.java:255)
    at junit.framework.TestSuite.run(TestSuite.java:250)
    at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:131)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

类Tester中的测试方法应该有@test注释。另外,类Utf不应该扩展TestCase

import java.util.Scanner;

import org.junit.runner.JUnitCore;

public class Utf {
    public static void main(String[] args) {
    /*
     * creates and reads from scanner
     */
    Scanner in = new Scanner(System.in);
    String filename = in.nextLine();

    /*
     * gets Tester class' name and stores it as a String
     */
    String className = Tester.class.getName();

    /*
     * if user input String matches Tester class' name then run tests
     * else File Not Found
     */
    if (filename.equals(className)) {
        JUnitCore.main(className);
    } else {
        System.out.println("File not Found");
    }
    /*
     * closes scanner
     */
    in.close();

}
}

Tester.java


请添加堆栈跟踪我实际上没有得到堆栈跟踪,它只是抛出一个失败而不是一个错误。Nvm,我找到了它。我编辑这篇文章是为了在底部显示跟踪。如果你不想使用@Test注释。Tester类应该扩展TestCase。我更改了代码以反映这一点,我仍然无法找到类OK,我将if name==name更改为.equals version,然后我得到了这个错误。线程主java.lang.NoClassDefFoundError中出现异常:org/hamcrest/selfdescription at java.lang.ClassLoader.defineClass1Native方法at java.lang.ClassLoader.defineClass1Unknown Source关于缺少依赖项的信息请参阅此链接。感谢链接,我忘记了世界上最简单的事情。谢谢你的快速回复。
import junit.framework.TestCase;

public class Tester extends TestCase{

public void testStudentConstructor() throws Exception
{
    // Your code goes here
}

// Additional code

}