Я не нашел способа получить доступ к объекту Project
из TestKit (и я подозреваю, что это невозможно сделать).
Один из способов получить 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);
}