2016-09-03 5 views
1

TestNGで動作するシンプルなコードがありますが、Gradleで同じメソッドを実行することはできません。メインメソッドが見つからないと言われています。アノテーションを使ってTestNG with 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ではありません。

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は何の主な方法がないことを返します。

は、ここに私の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。またsrc/test/javaの下にtryTestNGと大文字で名前を付けてください。

ここにはdemoがあります。

また、printlnテストのステートメントはコンソールに表示されません。それらを表示するには、テストレポートにナビゲートします。下にあります:<project_dir>/build/reports/tests/index.html

+0

こんにちはオパール、依頼した変更にはまだエラーがあります。実行中に表示される現在のエラーは次のとおりです。〜*何がうまくいかなかった: 'run'というタスクがルートプロジェクト 'TestNGGradle'に見つかりません。 –

+0

@AvirupDasはい、正しいです。 'run'タスクは' application'プラグインから来ます。それが適用されない場合、タスクはありません。もう一度私の答えを見てください。私はコマンドは 'gradle run'ではなく' gradle test'でなければならないと書いた。 – Opal

+0

私の悪い...あなたの助けをもう一度ありがとう。 –

関連する問題