Changeset 16617 in josm


Ignore:
Timestamp:
2020-06-14T11:54:09+02:00 (8 weeks ago)
Author:
simon04
Message:

fix #16567 - Upgrade to JUnit 5 (patch by taylor.smock)

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/.classpath

    r16400 r16617  
    2323                </attributes>
    2424        </classpathentry>
    25         <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4">
     25        <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/5">
    2626                <attributes>
    2727                        <attribute name="test" value="true"/>
    2828                </attributes>
    2929        </classpathentry>
    30         <classpathentry kind="con" path="org.apache.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER/?project=JOSM&amp;ivyXmlPath=ivy.xml&amp;confs=*&amp;ivySettingsPath=ivysettings.xml&amp;loadSettingsOnDemand=false&amp;ivyUserDir=&amp;propertyFiles="/>
     30        <classpathentry exported="true" kind="con" path="org.apache.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER/?project=JOSM&amp;ivyXmlPath=ivy.xml&amp;confs=*&amp;ivySettingsPath=ivysettings.xml&amp;loadSettingsOnDemand=false&amp;ivyUserDir=&amp;propertyFiles="/>
    3131        <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
    3232                <attributes>
  • trunk/build.xml

    r16603 r16617  
    449449        <sequential>
    450450            <echo message="Running @{testfamily}@{testITsuffix} tests with JUnit"/>
    451             <jacoco:coverage destfile="${test.dir}/jacoco@{testITsuffix}.exec" enabled="@{coverage}" includes="${jacoco.includes}"
    452                 inclbootstrapclasses="${jacoco.inclbootstrapclasses}" inclnolocationclasses="${jacoco.inclnolocationclasses}">
    453                 <junit printsummary="${junit.printsummary}" fork="true" forkmode="once" failureproperty="test.@{testfamily}@{testITsuffix}.failed">
    454                     <jvmarg value="-Dfile.encoding=UTF-8"/>
    455                     <jvmarg value="-javaagent:${test.dir}/lib/jmockit.jar"/>
    456                     <jvmarg value="--add-modules" if:set="isJava9" unless:set="isJava11" />
    457                     <jvmarg value="java.activation,java.se.ee" if:set="isJava9" unless:set="isJava11" />
    458                     <jvmarg value="--add-exports" if:set="isJava9" unless:set="noJavaFX" />
    459                     <jvmarg value="javafx.graphics/com.sun.javafx.application=ALL-UNNAMED" if:set="isJava9" unless:set="noJavaFX" />
    460                     <jvmarg value="--add-exports" if:set="isJava9" unless:set="isJava11" />
    461                     <jvmarg value="jdk.deploy/com.sun.deploy.config=ALL-UNNAMED" if:set="isJava9" unless:set="isJava11" />
    462                     <jvmarg value="--add-opens" if:set="isJava9" />
    463                     <jvmarg value="java.base/java.io=ALL-UNNAMED" if:set="isJava9" />
    464                     <jvmarg value="--add-opens" if:set="isJava9" />
    465                     <jvmarg value="java.base/java.lang=ALL-UNNAMED" if:set="isJava9" />
    466                     <jvmarg value="--add-opens" if:set="isJava9" />
    467                     <jvmarg value="java.base/java.nio=ALL-UNNAMED" if:set="isJava9" />
    468                     <jvmarg value="--add-opens" if:set="isJava9" />
    469                     <jvmarg value="java.base/java.text=ALL-UNNAMED" if:set="isJava9" />
    470                     <jvmarg value="--add-opens" if:set="isJava9" />
    471                     <jvmarg value="java.base/java.util=ALL-UNNAMED" if:set="isJava9" />
    472                     <jvmarg value="--add-opens" if:set="isJava9" />
    473                     <jvmarg value="java.base/jdk.internal.loader=ALL-UNNAMED" if:set="isJava9" />
    474                     <jvmarg value="--add-opens" if:set="isJava9" />
    475                     <jvmarg value="java.desktop/java.awt=ALL-UNNAMED" if:set="isJava9" />
    476                     <sysproperty key="josm.home" value="${test.dir}/config/@{testfamily}-josm.home"/>
    477                     <sysproperty key="josm.test.data" value="${test.dir}/data"/>
    478                     <sysproperty key="java.awt.headless" value="${test.headless}"/>
    479                     <sysproperty key="glass.platform" value="Monocle"/>
    480                     <sysproperty key="monocle.platform" value="Headless"/>
    481                     <sysproperty key="prism.order" value="sw"/>
    482                     <sysproperty key="suppressPermanentFailure" value="${suppressPermanentFailure}"/>
    483                     <classpath>
    484                         <path refid="test.classpath"/>
    485                         <pathelement path="${test.dir}/build/unit"/>
    486                         <pathelement path="${test.dir}/build/@{testfamily}"/>
    487                         <pathelement path="${test.dir}/config"/>
    488                     </classpath>
    489                     <formatter type="plain"/>
    490                     <formatter type="xml"/>
    491                     <batchtest fork="yes" todir="${test.dir}/report">
    492                         <fileset dir="${test.dir}/build/@{testfamily}" includes="@{includes}" excludes="@{excludes}"/>
    493                     </batchtest>
    494                 </junit>
    495             </jacoco:coverage>
     451            <jacoco:agent destfile="${test.dir}/jacoco@{testITsuffix}.exec" enabled="@{coverage}" includes="${jacoco.includes}" dumponexit="true"
     452                    inclbootstrapclasses="${jacoco.inclbootstrapclasses}" inclnolocationclasses="${jacoco.inclnolocationclasses}" property="jacocoagent@{testfamily}@{testITsuffix}" if:true="@{coverage}"/>
     453            <junitlauncher printsummary="${junit.printsummary}" failureproperty="test.@{testfamily}@{testITsuffix}.failed">
     454                <classpath>
     455                    <path refid="test.classpath"/>
     456                    <pathelement path="${test.dir}/build/unit"/> <!-- required for functional/etc to have JOSMTestRules -->
     457                    <pathelement path="${test.dir}/build/@{testfamily}"/>
     458                </classpath>
     459                <testclasses outputDir="${test.dir}/report">
     460                    <fileset dir="${test.dir}/build/@{testfamily}" includes="@{includes}" excludes="@{excludes}"/>
     461                        <fork>
     462                            <jvmarg value="${jacocoagent@{testfamily}@{testITsuffix}}" if:set="jacocoagent@{testfamily}@{testITsuffix}" />
     463                            <jvmarg value="-Dfile.encoding=UTF-8"/>
     464                            <jvmarg value="-javaagent:${test.dir}/lib/jmockit.jar"/>
     465                            <jvmarg value="--add-modules" if:set="isJava9" unless:set="isJava11" />
     466                            <jvmarg value="java.activation,java.se.ee" if:set="isJava9" unless:set="isJava11" />
     467                            <jvmarg value="--add-exports" if:set="isJava9" unless:set="noJavaFX" />
     468                            <jvmarg value="javafx.graphics/com.sun.javafx.application=ALL-UNNAMED" if:set="isJava9" unless:set="noJavaFX" />
     469                            <jvmarg value="--add-exports" if:set="isJava9" unless:set="isJava11" />
     470                            <jvmarg value="jdk.deploy/com.sun.deploy.config=ALL-UNNAMED" if:set="isJava9" unless:set="isJava11" />
     471                            <jvmarg value="--add-opens" if:set="isJava9" />
     472                            <jvmarg value="java.base/java.io=ALL-UNNAMED" if:set="isJava9" />
     473                            <jvmarg value="--add-opens" if:set="isJava9" />
     474                            <jvmarg value="java.base/java.lang=ALL-UNNAMED" if:set="isJava9" />
     475                            <jvmarg value="--add-opens" if:set="isJava9" />
     476                            <jvmarg value="java.base/java.nio=ALL-UNNAMED" if:set="isJava9" />
     477                            <jvmarg value="--add-opens" if:set="isJava9" />
     478                            <jvmarg value="java.base/java.text=ALL-UNNAMED" if:set="isJava9" />
     479                            <jvmarg value="--add-opens" if:set="isJava9" />
     480                            <jvmarg value="java.base/java.util=ALL-UNNAMED" if:set="isJava9" />
     481                            <jvmarg value="--add-opens" if:set="isJava9" />
     482                            <jvmarg value="java.base/jdk.internal.loader=ALL-UNNAMED" if:set="isJava9" />
     483                            <jvmarg value="--add-opens" if:set="isJava9" />
     484                            <jvmarg value="java.desktop/java.awt=ALL-UNNAMED" if:set="isJava9" />
     485                            <sysproperty key="josm.home" value="${test.dir}/config/@{testfamily}-josm.home"/>
     486                            <sysproperty key="josm.test.data" value="${test.dir}/data"/>
     487                            <sysproperty key="java.awt.headless" value="${test.headless}"/>
     488                            <sysproperty key="glass.platform" value="Monocle"/>
     489                            <sysproperty key="monocle.platform" value="Headless"/>
     490                            <sysproperty key="prism.order" value="sw"/>
     491                            <sysproperty key="suppressPermanentFailure" value="${suppressPermanentFailure}"/>
     492                        </fork>
     493                    <listener type="legacy-plain" />
     494                    <listener type="legacy-xml" />
     495                </testclasses>
     496            </junitlauncher>
    496497        </sequential>
    497498    </macrodef>
     
    605606        # Keep serialization code
    606607        -keepclassmembers class * implements java.io.Serializable {
    607             static final long serialVersionUID; 
     608            static final long serialVersionUID;
    608609            private static final java.io.ObjectStreamField[] serialPersistentFields;
    609610            private void writeObject(java.io.ObjectOutputStream);
    610611            private void readObject(java.io.ObjectInputStream);
    611             java.lang.Object writeReplace(); 
     612            java.lang.Object writeReplace();
    612613            java.lang.Object readResolve();
    613614        }
  • trunk/ivy.xml

    r16539 r16617  
    5959        <dependency conf="test->default" org="com.github.tomakehurst" name="wiremock" rev="2.26.3"/>
    6060        <dependency conf="test->default" org="io.github.classgraph" name="classgraph" rev="4.8.67"/>
    61         <dependency conf="test->default" org="junit" name="junit" rev="4.12"/>
     61        <dependency conf="test->default" org="org.junit.platform" name="junit-platform-launcher" rev="1.6.2"/>
     62        <dependency conf="test->default" org="org.junit.vintage" name="junit-vintage-engine" rev="5.6.2"/>
     63        <dependency conf="test->default" org="org.junit.jupiter" name="junit-jupiter-api" rev="5.6.2"/>
     64        <dependency conf="test->default" org="org.junit.jupiter" name="junit-jupiter-engine" rev="5.6.2"/>
     65        <dependency conf="test->default" org="org.junit.jupiter" name="junit-jupiter-migrationsupport" rev="5.6.2"/>
    6266        <dependency conf="test->default" org="net.trajano.commons" name="commons-testing" rev="2.1.0"/>
    6367        <dependency conf="test->default" org="nl.jqno.equalsverifier" name="equalsverifier" rev="3.1.13"/>
  • trunk/test/unit/org/openstreetmap/josm/testutils/JOSMTestRules.java

    r16321 r16617  
    2424
    2525import org.awaitility.Awaitility;
     26import org.junit.jupiter.api.extension.AfterEachCallback;
     27import org.junit.jupiter.api.extension.BeforeEachCallback;
     28import org.junit.jupiter.api.extension.ExtensionContext;
    2629import org.junit.rules.TemporaryFolder;
    2730import org.junit.rules.TestRule;
     
    7982 * @author Michael Zangl
    8083 */
    81 public class JOSMTestRules implements TestRule {
     84public class JOSMTestRules implements TestRule, AfterEachCallback, BeforeEachCallback {
    8285    private int timeout = isDebugMode() ? -1 : 10 * 1000;
    8386    private TemporaryFolder josmHome;
     
    433436    }
    434437
     438    @Override
     439    public void beforeEach(ExtensionContext context) throws Exception {
     440        Statement temporaryStatement = new Statement() {
     441            @Override
     442            public void evaluate() throws Throwable {
     443                // do nothing
     444            }
     445        };
     446        try {
     447            this.apply(temporaryStatement,
     448                    Description.createTestDescription(this.getClass(), "JOSMTestRules JUnit5 Compatibility"))
     449                    .evaluate();
     450        } catch (Throwable e) {
     451            throw new Exception(e);
     452        }
     453    }
     454
     455    @Override
     456    public void afterEach(ExtensionContext context) throws Exception {
     457        // do nothing for now
     458    }
     459
    435460    /**
    436461     * Set up before running a test
Note: See TracChangeset for help on using the changeset viewer.