java - 使用 cli 运行单个 junit 测试
问题描述
我需要通过 cli 运行一个测试用例。我创建了一个跑步者课程
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);
}
}
使用这个答案 使用命令行从 JUnit 类运行单个测试。
我从 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
必须是类的名称,而不是文件的名称,所以这意味着no .class
。如果您class
指定了 any package
,那么 theclassname
也需要包含package
名称,并且路径是到 的根目录,而package
不是它class
本身。
检查您的用户是否有权访问文件,然后尝试:
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...
目录中。
推荐阅读
- python-3.x - Python - 比 if else 更好的方法
- javascript - 尽管有条件将当前道具与先前道具进行比较,但在 componentDidUpdate(prevProps) 中的无限 api 调用
- html - 让 AnalyserNode 对 HTMLAudioElement 做出反应
- php - PHP 电子表格预过滤列
- java - 在列表中迭代时对一个或多个匹配项进行分组
- node.js - npm -v 系统找不到指定的路径
- json - Bad JSON escape sequence: \\1. Path 'sections[0].facts[0].value', line 1, position 196."
- java - 从数组中删除左侧重复项
- php - 将所有 While 输出回显到单个变量中
- sql - 如何在不使用 COUNT(*) 的情况下获取 SQL 临时表中的行数