Я пытаюсь создать исполняемый файл jar, который запустит мой тест на селенид.
TestClass
public class TestClass {
@Test
public void openBrowser(){
System.setProperty("webdriver.chrome.driver", "chrome location");
open("google.com");
}
}
Test Executor
public class TestExecutor {
public static void main(String[] args) {
TestListenerAdapter tla = new TestListenerAdapter();
TestNG testng = new TestNG();
testng.setTestClasses(new Class[] { TestClass.class });
testng.addListener((ITestNGListener) tla);
testng.run();
}
}
build.gradle
plugins {
id 'java'
}
repositories {
maven {
url = 'jfrog artifactory url'
}
}
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
task testJar(type: ShadowJar) {
manifest {
attributes 'Implementation-Title': 'Gradle',
'Implementation-Version': project.version,
'Main-Class': 'TestExecutor'
}
from sourceSets.test.output
configurations = [project.configurations.testRuntime]
}
test {
useJUnitPlatform()
}
dependencies {
testCompile 'org.seleniumhq.selenium:selenium-java:3.141.59'
testCompile 'org.apache.poi:poi:4.1.0'
testCompile 'org.apache.poi:poi-ooxml:4.1.0'
testCompile 'org.slf4j:slf4j-simple:1.7.5'
testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.5.2'
testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-params', version: '5.5.2'
testCompile group: 'com.codeborne', name: 'selenide', version: '5.1.0'
testCompile group: 'com.aventstack', name: 'extentreports', version: '4.0.9'
testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.5.2'
testCompile group: 'org.testng', name: 'testng', version: '6.14.3'
compile group: 'org.testng', name: 'testng', version: '6.14.3'
}
group 'groupId'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
при сборке jar-файла не удается найти тестовые зависимости.
Я попытался добавить путь testRuntimeClasspath в jar вот так
from {
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
configurations.testRuntimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
}
, но затем я получаю сообщение об ошибке: Не удалось найти или загрузить основной класс
Я пытался запустить это для 2+ недели. Я не знаю, что мне нужно делать на самом деле, потому что все это для меня в новинку. ОТПРАВИТЬ ПОМОЩЬ.