Невозможно запустить файл jar селена с помощью testng.xml из командной строкиJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Невозможно запустить файл jar селена с помощью testng.xml из командной строки

Сообщение Anonymous »

Я пытаюсь запустить сборку Selenium Java Test (файл jar) на Gradle с помощью TestNG.xml из командной строки.
Примечание: я могу успешно запустить тестовый пример из 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");
}
}
Testng.xml build.gradle

Код: Выделить всё

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()
}
Из PowerShell (Windows 11) выполнил следующие команды:

Код: Выделить всё

> 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
Я дополнительно проверил файл .Jar и обнаружил, что он содержит класс com.xyz.Test1 (снимок экрана ниже для справки)
Изображение


Подробнее здесь: https://stackoverflow.com/questions/792 ... mmand-line
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»