Муравей не распознает @ParametrizedTest и @CsvSource - PullRequest
0 голосов
/ 31 января 2019

Несмотря на добавление необходимых зависимостей, моя сборка ant (версия 1.10.5) не компилирует тесты junit5

Я указал затмение на последнюю версию Ant, отдельно установленную в моей системе, а также добавил все файлы jarупоминается на официальной странице Ant для junit-jupiter

Сценарий сборки, взятый из страницы ant-junit-samples , выглядит следующим образом:

     <?xml version="1.0" encoding="UTF-8"?>
        <project name="junit5-jupiter-starter-ant" default="build" basedir=".">

    <fail message="Ant 1.10.5 is required!">
        <condition>
            <not>
                <antversion atleast="1.10.5"/>
            </not>
        </condition>
    </fail>

    <path id="test.classpath">
        <pathelement path="build/test"/>
        <pathelement path="build/main"/>
        <fileset dir="${ant.home}/lib" includes="*.jar" />
    </path>

    <target name="build" description="clean build" depends="clean, test" />

    <target name="clean">
        <delete dir="build"/>
        <echo message="${ant.home}" />    </target>

    <target name="init">
        <mkdir dir="build/main"/>
        <mkdir dir="build/test"/>
        <mkdir dir="build/test-report"/>
    </target>

    <target name="compile" depends="init">
        <javac destdir="build/main" srcdir="src/main/java" includeantruntime="false"/>
        <javac destdir="build/test" classpathref="test.classpath" srcdir="src/test/java" includeantruntime="false"/>
    </target>

    <!-- https://junit.org/junit5/docs/snapshot/user-guide/#running-tests-build-ant -->
    <target name="test.junit.launcher" depends="compile">
        <junitlauncher haltOnFailure="true" printSummary="true">
            <classpath refid="test.classpath"/>
            <testclasses outputdir="build/test-report">
                <fileset dir="build/test">
                    <include name="**/*Tests.class"/>
                </fileset>
                <listener type="legacy-xml" sendSysOut="true" sendSysErr="true"/>
                <listener type="legacy-plain" sendSysOut="true" />
            </testclasses>
        </junitlauncher>
    </target>

    <!-- https://junit.org/junit5/docs/current/user-guide/#running-tests-console-launcher -->
    <target name="test.console.launcher" depends="compile">
        <java classpathref="test.classpath" classname="org.junit.platform.console.ConsoleLauncher" fork="true" failonerror="true">
            <arg value="--scan-classpath"/>
            <arg line="--reports-dir build/test-report"/>
        </java>
        <junitreport todir="build/test-report">
            <fileset dir="build/test-report">
                <include name="TEST-*.xml"/>
            </fileset>
            <report format="frames" todir="build/test-report/html"/>
        </junitreport>
    </target>

    <target name="test" depends="test.junit.launcher, test.console.launcher" />

</project>

Но я сталкиваюсь с ошибками

[javac] import org.junit.jupiter.params.ParameterizedTest;
    [javac]                                ^
     org.junit.jupiter.params.provider does not exist
    [javac] import org.junit.jupiter.params.provider.CsvSource;
    [javac]                                         ^
    [javac] CalculatorTests.java:31: error: cannot find symbol
    [javac]     @ParameterizedTest(name = "{0} + {1} = {2}")
    [javac]      ^
    [javac]   symbol:   class ParameterizedTest
    [javac]   location: class CalculatorTests
    [javac]  \CalculatorTests.java:32: error: cannot find symbol
    [javac]     @CsvSource({
    [javac]      ^
    [javac]   symbol:   class CsvSource
    [javac]   location: class CalculatorTests
    [javac] 4 errors

Не могли бы вы подсказать, что мне нужно настроить правильно?

Спасибо

1 Ответ

0 голосов
/ 31 января 2019

Образец junit5-jupiter-starter-ant копирует «автономный» JAR-файл JUnit 5 в папку $ANT_HOME/lib.Эта подготовленная установка Ant включает в себя все пакеты, которые JUnit 5 может предложить (Platform, Jupiter, Vintage) и передает их задачам, которые относятся к ant runtime через class-path или другим способом:

wget --directory-prefix "${ant_folder}/lib" "...junit-platform-console-standalone-1.3.2.jar"

Подробнее см. build.sh: https://github.com/junit-team/junit5-samples/blob/master/junit5-jupiter-starter-ant/build.sh

Итак, вы можете:

  • скопировать junit-platform-console-standalone-${version}.jar в ANT_HOME/lib
  • или добавьте junit-jupiter-params-${version}.jar так же, как вы сделали с junit-jupiter-api-${version}.jar
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...