Запустите одиночный джунт-тест с кли - PullRequest
0 голосов
/ 03 февраля 2020

Мне нужно запустить один тестовый сценарий через 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

Может кто-нибудь мне помочь?

спасибо

1 Ответ

0 голосов
/ 03 февраля 2020

Команда ожидает, что вы включите любые пути в classpath без пробелов. Пробел означает, что аргументы для classpath закончились. Если в одном из ваших путей есть пробел, вы можете включить двойные кавычки:

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

Если путь начинается с /, это полный путь. Если нет, то это относительно того, где вы выполняете свою команду. classname должно быть именем класса, а не файла, что означает отсутствие .class. Если в вашем class указан любой package, то classname также должен содержать имя package, и путь к root из 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....

...