java - 使用 cli 运行单个 junit 测试

标签 java junit command-line-interface

我需要通过 cli 运行一个测试用例。我创建了一个运行者类(class)

public class Runner {

    public static void main(String ... args) throws ClassNotFoundException {
        String[] classAndMethod = args[0].split("#");
        Request request = Request.method(Class.forName(classAndMethod[0]),
                classAndMethod[1]);
        Result result = new JUnitCore().run(request);
        System.exit(result.wasSuccessful() ? 0 : 1);
    }
}

使用这个答案 Run single test from a JUnit class using command-line .

我从 github 下载了一个项目 ( https://github.com/apache/incubator-dubbo ),我想在其中运行单个方法,我从终端将自己定位在包含我创建的 Runner 类的目录上,并启动了以下命令:

java -cp /path/incubator-dubbo/dubbo-cluster /usr/share/java/junit4-4.12.jar /pathClassRunner/src/com/company/Runner org.apache.dubbo.rpc.cluster.StickyTest#testHeartbeat

但我收到以下错误:

Error: Could not find or load main class pathClassRunner.src.com.company.Runner

有人可以帮助我吗?

谢谢

最佳答案

该命令希望您在 classpath 中包含任何路径,且不带空格。空格意味着classpath 的参数已经结束。如果您的路径之一中有空格,您可以包含双引号:

java -cp path1:path2:path3 classname argument
java -cp "path1:path2:path3" classname argument

如果路径以 / 开头,则它是完整路径。如果不是,则与您运行命令的位置相关。 classname 必须是类的名称,而不是文件的名称,因此这意味着没有 .class。如果您的class指定了任何package,那么classname也需要包含package名称,以及路径是,而不是本身。

检查您的用户是否具有对文件的正确访问权限,然后尝试:

java -cp /path/incubator-dubbo/dubbo-cluster:/usr/share/java/junit4-4.12.jar:/pathClassRunner/src/com/company Runner org.apache.dubbo.rpc.cluster.StickyTest#testHeartbeat

我假设您的Runner位于默认包中。如果它位于 com.company 包中,您将需要运行它:

java -cp /path/incubator-dubbo/dubbo-cluster:/usr/share/java/junit4-4.12.jar:/pathClassRunner/src com.company.Runner org.apache.dubbo.rpc.cluster.StickyTest#testHeartbeat

另一个假设是您的 Runner.class 位于 /pathClassRunner/src... 目录中。

关于java - 使用 cli 运行单个 junit 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60042906/

相关文章:

java - 如何识别给定的字符串是使用java的双字节字符集?

java - Android:带有在线文件​​链接的 TextView

java - 如何从 selenium rc 生成结果

php - 如何从命令行记录 PHP 脚本的每个输出?

linux - 在 linux 命令行中查找并突出显示文本

java - 是否可以使用 javascript 调用 java 方法?

java - 带有特殊字符的 FTP URL 用户名和密码

selenium - 通过文本查找元素并获取 xpath - selenium webdriver junit

java - Junit 测试 - com.liferay.portal.kernel.bean.BeanLocatorException : BeanLocator has not been set

PHP CLI 进程在完成后不会终止