Примечание: я могу успешно запустить тестовый пример из IntelliJ.
Но когда я упаковываю проект в файл .jar и пытаюсь запустить его из CLI (Windows 11 powershell), выдается ошибка.
При запуске кода ниже
Код: Выделить всё
java -cp untitled-0.1-all.jar org.testng.TestNG Testng.xml
[main] ОШИБКА org.testng.TestNG - Невозможно найти класс в пути к классам:
com.xyz.Test1
Структура и код проекта.

Код класса Test1:
Это простой тестовый класс, который открывает браузер Chrome с помощью селена и проверяет заголовок страницы.
Код: Выделить всё
package com.xyz;
import com.google.common.util.concurrent.Uninterruptibles;
import io.github.bonigarcia.wdm.WebDriverManager;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.Assert;
import org.testng.annotations.Test;
import java.time.Duration;
public class Test1 {
@Test
public void test() {
System.out.println(">>>>>>>>>>>>> Starting the test");
//Opening the Chrome brower
WebDriverManager.chromedriver().setup();
WebDriver driver = new ChromeDriver();
//Opening google page and verifying the title
driver.get("https://www.google.com");
Uninterruptibles.sleepUninterruptibly(Duration.ofSeconds(10));
String actualTitle = driver.getTitle();
Assert.assertEquals(actualTitle, "Google");
//Close the chrome browser
driver.quit();
System.out.println(">>>>>>>>>>>>> Ending the test");
}
}
Код: Выделить всё
Код: Выделить всё
plugins {
id 'java'
id 'java-library'
id 'com.github.johnrengelman.shadow' version '8.1.1'
}
group = 'xyz'
version = '0.1'
repositories {
mavenCentral()
}
shadowJar {
// Include test resources
from 'src/test/resources'
// Include test code
from 'src/test/java'
}
dependencies {
//Add impementation & testImplementation as was not sure if this was the source of problem.
implementation 'org.seleniumhq.selenium:selenium-java:4.26.0'
implementation 'org.testng:testng:7.10.2'
implementation 'org.slf4j:slf4j-simple:2.0.9'
implementation 'io.github.bonigarcia:webdrivermanager:5.8.0'
testImplementation 'org.testng:testng:7.10.2'
testImplementation 'org.seleniumhq.selenium:selenium-java:4.26.0'
testImplementation 'io.github.bonigarcia:webdrivermanager:5.8.0'
}
jar {
manifest {
attributes 'Main-Class': 'com.xyz.Test1'
}
}
test {
useTestNG()
}
Код: Выделить всё
> gradle clean
> gradle shadowJar

Затем выполнил команду ниже
Код: Выделить всё
> java -cp .\build\libs\untitled-0.1-all.jar org.testng.TestNG .\src\test\resources\Testng.xml
Код: Выделить всё
[main] ERROR org.testng.TestNG -
Cannot find class in classpath: com.xyz.Test1

Подробнее здесь: https://stackoverflow.com/questions/792 ... mmand-line
Мобильная версия