2016-09-03 3 views
1

У меня есть простой код, который работает с TestNG, но я не могу работать с Gradle, так как он говорит, что главный метод не найден, что неудивительно, так как я используя аннотации.Невозможно запустить TestNG с Gradle

Но в таком случае, как запустить код, если я должен использовать Gradle.

Пожалуйста, обратите внимание, что я очень новичок в Gradle и не знаю многого о том же.

Код:

import org.testng.annotations.AfterClass; 
import org.testng.annotations.BeforeClass; 
import org.testng.annotations.Test; 

public class tryTestNG 
{ 
    @BeforeClass 
    public void setup() 
    { 
     System.out.println("I am in Setup"); 
    } 

    @Test 
    public void test() 
    { 
     System.out.println("I am in Test"); 
    } 

    @AfterClass 
    public void tearDown() 
    { 
     System.out.println("I am in tearDown"); 
    } 
} 

Приведенный выше код работает отлично с TestNG библиотеки. Однако не с Gradle.

Вот мой Gradle построить установку:

apply plugin: 'java' 
apply plugin: 'application' 

mainClassName = 'tryTestNG' 
sourceCompatibility = 1.7 
targetCompatibility = 1.7 
version = '1.0' 

repositories { 
    mavenCentral() 
} 

test { 
    useTestNG() 
} 


dependencies { 
    compile group: 'org.testng', name: 'testng', version: '6.9.10'   
} 

Gradle возвращает, что нет основного метода.

Working Directory: /home/avirup/MyWorkspace/JavaWorkspace/TestNGGradle 
Gradle User Home: /home/avirup/.gradle 
Gradle Distribution: Gradle wrapper from target build 
Gradle Version: 2.9 
Java Home: /usr/lib/jvm/java-8-oracle 
JVM Arguments: None 
Program Arguments: None 
Gradle Tasks: run 

:compileJava UP-TO-DATE 
:processResources UP-TO-DATE 
:classes UP-TO-DATE 
:runError: Main method not found in class tryTestNG, please define the main method as: 
    public static void main(String[] args) 
or a JavaFX application class must extend javafx.application.Application 
FAILED 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':run'. 
> Process 'command '/usr/lib/jvm/java-8-oracle/bin/java'' finished with non-zero exit value 1 

* Try: 
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 

BUILD FAILED 

Total time: 0.514 secs 

Благодарим за помощь.

ответ

4

Нет необходимости использовать плагин application для запуска тестов.

build.gradle должно быть:

apply plugin: 'java' 

sourceCompatibility = 1.7 
targetCompatibility = 1.7 
version = '1.0' 

repositories { 
    mavenCentral() 
} 

test { 
    useTestNG() 
} 


dependencies { 
    compile group: 'org.testng', name: 'testng', version: '6.9.10' 
} 

И команда: gradle test. Также, положите tryTestNG под src/test/java и назовите его заглавной буквой.

Адрес demo.

Также помните, что в консоли консоли не видны операторы println. Чтобы просмотреть их, перейдите к тестовому отчету. Он находится под: <project_dir>/build/reports/tests/index.html.

+0

Hi Opal, я все еще получаю сообщение об ошибке, которую вы просили. Текущая ошибка, отображаемая во время запуска: ~ * Что пошло не так: Task 'run' не найден в корневом проекте TestNGGradle. –

+0

@AvirupDas, да, это правильно. Задача 'run' происходит из плагина' application'. Если он не применяется, нет никакой задачи. См. Мой ответ еще раз. Я написал, что команда должна быть 'gradle test', а не' gradle run'. – Opal

+0

Мой плохой ... Еще раз спасибо за вашу помощь. –