Java 如何在没有主函数的情况下从命令提示符运行JUnit测试

Java 如何在没有主函数的情况下从命令提示符运行JUnit测试,java,junit,jenkins,command,prompt,Java,Junit,Jenkins,Command,Prompt,我想用Jenkins运行一个简单的JUnit测试,首先我想在命令提示符下尝试一下,如果可以的话 JUnit.jar文件位于C:\JUnit.jar中 我有一个动态web项目,其中有一个“测试”包,其中有一个LoginTest类 package test; import junit.framework.TestCase; public class LoginTest extends TestCase { @Test public void

我想用Jenkins运行一个简单的JUnit测试,首先我想在命令提示符下尝试一下,如果可以的话

JUnit.jar文件位于C:\JUnit.jar中

我有一个动态web项目,其中有一个“测试”包,其中有一个LoginTest类

    package test;
    import junit.framework.TestCase;
    public class LoginTest extends TestCase { 
        @Test
        public void testLogin() {
            ....
            assertstuff...
        }
    }
我有一个单独的带有TestSuite类的项目:

    package test;
    import org.junit.extensions.cpsuite.ClasspathSuite;
    import org.junit.runner.RunWith;
    @RunWith(ClasspathSuite.class)
    public class TestSuite {

    }
然后,我将LoginTest类添加到TestSuite构建路径中

如果我在Eclipse中使用JUnit运行TestSuite,它可以工作,但我想从cmd运行它

我在cmd中尝试了以下操作:

    java -cp C:\junit.jar;D:\Documents\eclipse\blablabla\project_path\bin test.TestSuite
但它不起作用。
您能帮我解决这个问题吗?

请仔细阅读您的命令行:

java -cp C:\junit.jar;... test.TestSuite
#        (classpath)      (main class)
您告诉Java运行您的TestSuite的main方法,但它并不存在。现在比较链接中的一个:

第二个命令要求
java
运行
JUnitCore
,而不是试图运行
TestSuite
。在该类名之后,将测试套件作为第一个参数传递给JUnitCore,这将告诉JUnitCore加载并运行该类

试试这个:

java -cp C:\junit.jar;D:\Documents\eclipse\blablabla\project_path\bin org.junit.runner.JUnitCore test.TestSuite
#        (your full classpath)                                        (main class)               (your test class)

可能是重复的好吧,我没有从中学到任何东西,这就是为什么我做了这个主题,然后尝试一下我得到的:线程“main”java.lang.NoClassDefFoundError中的异常:org/hamcrest/selfdescription at java.lang.ClassLoader.defineClass1(本机方法)at java.lang.ClassLoader.defineClass(未知源)在java.net.URLClassLoader.java.net.URLClassLoader.defineClass(未知源)在java.net.URLClassLoader.access$100(未知源)在java.net.URLClassLoader$1.run(未知源)在java.net.URLClassLoader$1.run(未知源)在java.security.AccessController.doPrivileged(本机方法)如上所述,在类路径上同时需要junit.jar和hamcrest-core.jar。否则,将找不到Hamcrest类(如org.Hamcrest.selfdescription)(NoClassDefFoundError)。
java -cp C:\junit.jar;D:\Documents\eclipse\blablabla\project_path\bin org.junit.runner.JUnitCore test.TestSuite
#        (your full classpath)                                        (main class)               (your test class)