Как протестировать Java 9+ doclet без насмешливого Doclet API? - PullRequest
0 голосов
/ 25 апреля 2019

Я написал доклет, используя Java 9+.Я хотел бы протестировать его с использованием инфраструктуры JUnit, не издеваясь над API Doclet.Любой хороший способ продолжить?

1 Ответ

0 голосов
/ 26 апреля 2019

Ответ прост, когда вы знаете, что использовать.Вот пример ручного вызова, который можно использовать в тесте JUnit.

DocumentationTool systemDocumentationTool = ToolProvider.getSystemDocumentationTool();
        String[] args = new String[] {
          "-sourcepath",
          "./src/test/java",
          "-subpackages",
          "<whatever-package-in-test-sources>",
          "<whatever-package-in-test-sources>",
          "-d",
          "whatever not used just to show compatibility",
          "-author",
          "whatever not used just to show compatibility",
          "-doctitle",
          "whatever not used just to show compatibility",
          "-windowtitle",
          "whatever not used just to show compatibility",
          "-classdir",
          BUILD_PROPERTY_FILE_LOCATION
        };
        DocumentationTool.DocumentationTask task = systemDocumentationTool.getTask(null, null, null,
          <MyDocletClass>.class, Arrays.asList(args), null);

        task.call();
        // Your checks after invocation

...