我正在使用Gradle的TestKit,并希望确保有一个插件向sourceSets.main.proto添加了正确的路径。
我如何访问这些信息?
发布于 2020-08-05 02:00:44
我还没有找到从TestKit访问Project对象的方法(我怀疑这样做是不可能的)。
获取sourceSets.main.proto的一种方法是在测试数据build.gradle文件中创建一个任务。例如:
tasks.register('assertMainProtoSrcDirsIncludesProtopPath') {
doLast {
assert sourceSets.main.proto.srcDirs.contains(file("${rootDir}/${protop.path}"))
}
}然后,可以使用TestKit来调用该任务:
@Test
@DisplayName("`sourceSets.main.proto.srcDirs` should include `protop.path`.")
public void sourceSetsMainProtoSrcDirsShouldIncludeProtopPath(final SoftAssertions softly) {
final BuildResult buildResult = gradleRunner
.withPluginClasspath()
.withProjectDir(rootDir.toFile())
.withArguments("--info", "--stacktrace", ":assertMainProtoSrcDirsIncludesProtopPath")
.build();
softly.assertThat(Objects.requireNonNull(buildResult.task(":assertMainProtoSrcDirsIncludesProtopPath")).getOutcome())
.isEqualByComparingTo(SUCCESS);
}https://stackoverflow.com/questions/63235374
复制相似问题