2017-01-04 12 views
0

私はJavaアプリケーションでGradleビルドを使用しています。私のプロジェクトには、弾性サーチ法があります。続いて、私はそれがテストを実行し、myproject-V.4.0.0.jarを作成しgradle buildを与えるとき、私のgradle.build私のテストをアプリケーションjarに含める方法

jar { 
    baseName = 'myproject' 
    version = 'V.4.0.0' 
    manifest { 
     attributes 'Main-Class': 'com.myapp.Application' 
    } 
    from { 
    configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } 
    } 
} 
test { 
    systemProperties = System.properties 
    systemProperty 'tests.security.manager', 'false' 
} 

です。しかし、私が実行するとき

java -cp myproject-V.4.0.0.jar;junit-4.11.jar junit.textui.TestRunner com.myapp.test.testclassname 

私はcom.myapplication.test.testclassnameの例外が見つかりませんでした。 myproject-V.4.0.0.jarを抽出しましたが、テストクラスが見つかりませんでした。

私の質問は、どのようにアプリケーションクラスにもテストクラスを含めることができますか?

+7

私はなぜこれをやりたいのですか?あなたは通常、あなたのアプリケーションjarでテストを出荷したくないです。 – tddmonkey

+0

@tddmonkey、はい、しかし、問題は私の統合テストが今すぐ実行されなければならないことです。それはPRDに配備されません。 PRDのために私はテストを含まずにクリーンなビルドを持っています。どのように私はテストで私のアプリケーションの1つのコピーを出荷する必要があります。 – Backtrack

答えて

1

これはgradle Javaプロジェクトの意図的な動作です。 jarはプロダクションのアーティファクトなので、ビルド中にテストするのが普通ですが、プロダクションでテストを実行したくないので、実行することはお勧めしません。それを言って、このようにグラデーションでやる方法があります:

task myJar(type:Jar) { 
from {sourceSets.main.output + sourceSets.test.output} 
} 
+0

私はすでにこれを試しましたが、それでも同じです – Backtrack

+0

作成したjarを見て、ファイルをリストしてチェックすることができますか?私はそれを試して、それは私のためのクラスを含んでいます。クラスが見つからない場合は、プロジェクトのテストファイルへの正確なパスを記述できますか?あなたはgradle javaプラグインを使用していますか? – OlgaMaciaszek

+0

私のテストが追加されましたが、問題は、.classファイルではなく.javaファイルだけが追加されます – Backtrack

関連する問題