0

タスクで新しいスコープ フィルタリング API を使用して、プロジェクトとその依存関係のすべてのテストを実行しようとしています。

val select = ScopeFilter(inDependencies(p), inConfigurations(Test))
val agg = executeTests.all(select).map(aggregateTestOutput)
executeTests in Test := agg.value

しかし、私はエラーが発生しています

[error] Runtime reference to undefined setting: 
[error] 
[error]   proj/test:executeTests from proj/test:executeTests

を使用ScopeFilter(inDependencies(p, includeRoot=false), inConfigurations(Test))すると、プロジェクトの依存関係からテストが実行されます。スコープフィルターを作成するだけでも試しましたScopeFilter(inProject(p), inConfigurations(Test))が、同じエラーで失敗します。

これを機能させるにはどうすればよいですか?

4

1 に答える 1

3

設定プロセッサでのデッド コードの削除に問題がある可能性があります。 allで実装されてflatMapいるため、すべての依存関係が静的に認識されているわけではありません。executeTestsデフォルトは静的に使用されないため、デッド コードの削除は誤ってデフォルトを破棄します。次のように、以前の値を明示的に参照してみてください。

val select = ScopeFilter(inDependencies(p, includeRoot=false), inConfigurations(Test))
val agg = executeTests.all(select)

executeTests in Test := {
   val outs = (executeTests in Test).value +: agg.value
   aggregateTestOutput(outs)
}
于 2013-11-11T23:01:15.680 に答える