Как получить исходные наборы тестового проекта Gradle TestKit? - PullRequest
0 голосов
/ 03 августа 2020

Я использую Gradle TestKit и хочу убедиться, что плагин добавляет правильные пути к sourceSets.main.proto.

Как мне получить доступ к этой информации?

1 Ответ

0 голосов
/ 04 августа 2020

Я не нашел способа получить доступ к объекту 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);
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...