diff --git a/build.xml b/build.xml
index 38285d6d3a6e543e3c81029a1d93f81559973161..7c99179f5ebd48643ed4ba4355a04f8413be2fcc 100644
--- a/build.xml
+++ b/build.xml
@@ -311,6 +311,7 @@
     </target>
     
     <!-- special test harness for JUnit5 by Terry Norbraten -->
+    <!-- https://blogs.apache.org/netbeans/entry/junit-5-apache-ant-and -->
     <target depends="compile-test,-pre-test-run"
             description="Run unit tests."
             name="test" >
@@ -322,11 +323,11 @@
             <arg value="--scan-classpath=${build.test.classes.dir}"/>
             <arg value="--reports-dir=${build.test.results.dir}"/>
         </java>
-        <junitreport todir="build/test/results">
-            <fileset dir="build/test/results">
+        <junitreport todir="${build.test.results.dir}">
+            <fileset dir="${build.test.results.dir}">
                 <include name="TEST-*.xml"/>
             </fileset>
-            <report format="frames" todir="build/test/results/html"/>
+            <report format="frames" todir="${build.test.results.dir}/html"/>
         </junitreport>
     </target>
     <target depends="compile-test-single,-pre-test-run-single"
@@ -341,6 +342,33 @@
             <arg line="-c=${test.class}"/>
             <!--<arg value="-h"/>-->
         </java>
+        <junitreport todir="${build.test.results.dir}">
+            <fileset dir="${build.test.results.dir}">
+                <include name="TEST-*.xml"/>
+            </fileset>
+            <report format="frames" todir="${build.test.results.dir}/html"/>
+        </junitreport>
+    </target>
+    <target depends="compile-test-single,-pre-test-run-single"
+            description="Debug single unit test."
+            name="-debug-start-debuggee-test">
+        <java classpath="${run.test.classpath}"
+              classname="org.junit.platform.console.ConsoleLauncher"
+              fork="true">
+            <arg value="--disable-banner"/>
+            <arg value="--fail-if-no-tests"/>
+            <arg line="-c=${test.class}"/>
+            <jvmarg value="-Xdebug" />
+            <jvmarg value="-Xnoagent" />
+            <jvmarg value="-Djava.compiler=NONE" />
+            <jvmarg value="-agentlib:jdwp=transport=${debug-transport},address=${jpda.address}" />
+        </java>
+        <junitreport todir="${build.test.results.dir}">
+            <fileset dir="${build.test.results.dir}">
+                <include name="TEST-*.xml"/>
+            </fileset>
+            <report format="frames" todir="${build.test.results.dir}/html"/>
+        </junitreport>
     </target>
     
 </project>
diff --git a/nbproject/project.properties b/nbproject/project.properties
index 991f88ea8fd612d0426ded42ae0929313850540b..c8b94ae5b53485ce2789a05ec07c037fa5bd54ad 100644
--- a/nbproject/project.properties
+++ b/nbproject/project.properties
@@ -42,11 +42,9 @@ excludes=**/logs/ **/X3dInterpolators/
 file.reference.apiguardian-api-1.1.0.jar=testlibs/apiguardian-api-1.1.0.jar
 file.reference.commons-io-2.6.jar=lib/commons-io-2.6.jar
 file.reference.guava-28.0-jre.jar=lib/guava-28.0-jre.jar
-file.reference.junit-platform-commons-1.6.2.jar=testlibs/junit-platform-commons-1.6.2.jar
-file.reference.junit-platform-console-1.6.2.jar=testlibs/junit-platform-console-1.6.2.jar
-file.reference.junit-platform-engine-1.6.2.jar=testlibs/junit-platform-engine-1.6.2.jar
-file.reference.junit-platform-launcher-1.6.2.jar=testlibs/junit-platform-launcher-1.6.2.jar
-file.reference.junit-platform-reporting-1.6.2.jar=testlibs/junit-platform-reporting-1.6.2.jar
+file.reference.junit-jupiter-api-5.7.0.jar=testlibs/junit-jupiter-api-5.7.0.jar
+file.reference.junit-jupiter-engine-5.7.0.jar=testlibs/junit-jupiter-engine-5.7.0.jar
+file.reference.junit-platform-console-standalone-1.7.0.jar=testlibs/junit-platform-console-standalone-1.7.0.jar
 file.reference.open-dis7-enumerations-classes.jar=dist/open-dis7-enumerations-classes.jar
 file.reference.opentest4j-1.2.0.jar=testlibs/opentest4j-1.2.0.jar
 file.reference.srm-4.4.0.jar=lib/srm-4.4.0.jar
@@ -70,11 +68,11 @@ javac.processorpath=\
 javac.source=1.8
 javac.target=1.8
 javac.test.classpath=\
-    ${libs.junit_5.classpath}:\
     ${file.reference.apiguardian-api-1.1.0.jar}:\
-    ${libs.hamcrest.classpath}:\
     ${javac.classpath}:\
-    ${build.classes.dir}
+    ${build.classes.dir}:\
+    ${file.reference.junit-jupiter-api-5.7.0.jar}:\
+    ${file.reference.junit-jupiter-engine-5.7.0.jar}
 javac.test.modulepath=\
     ${javac.modulepath}
 javac.test.processorpath=\
@@ -129,13 +127,9 @@ run.jvmargs=
 run.modulepath=\
     ${javac.modulepath}
 run.test.classpath=\
-    ${file.reference.junit-platform-commons-1.6.2.jar}:\
-    ${file.reference.junit-platform-console-1.6.2.jar}:\
-    ${file.reference.junit-platform-engine-1.6.2.jar}:\
-    ${file.reference.junit-platform-launcher-1.6.2.jar}:\
-    ${file.reference.junit-platform-reporting-1.6.2.jar}:\
     ${file.reference.opentest4j-1.2.0.jar}:\
     ${javac.test.classpath}:\
+    ${file.reference.junit-platform-console-standalone-1.7.0.jar}:\
     ${build.test.classes.dir}
 run.test.modulepath=\
     ${javac.test.modulepath}
diff --git a/test/edu/nps/moves/dis7/FixedAndVariableDatumRoundTripTest.java b/test/edu/nps/moves/dis7/FixedAndVariableDatumRoundTripTest.java
index f068398d3e2114badd57b6a5a71e78c20d461059..63e3794ad3a38d5e577808d0eb353d89240dc1c0 100644
--- a/test/edu/nps/moves/dis7/FixedAndVariableDatumRoundTripTest.java
+++ b/test/edu/nps/moves/dis7/FixedAndVariableDatumRoundTripTest.java
@@ -53,39 +53,39 @@ public class FixedAndVariableDatumRoundTripTest
       disNetworkInterface = null;
   }
 
-  private static FixedDatum fixedDatum1 = new FixedDatum();
-  private static int fixedDatum1Value = 0x111111FF;
-  private static VariableRecordType fixedDatum1VarRecordType = VariableRecordType.ACTIVATE_OWNSHIP;
-  private static FixedDatum fixedDatum2 = new FixedDatum();
-  private static int fixedDatum2Value = 0x222222FF;
-  private static VariableRecordType fixedDatum2VarRecordType = VariableRecordType.HUMIDITY;
-  private static FixedDatum fixedDatum3 = new FixedDatum();
-  private static int fixedDatum3Value = 0x333333FF;
-  private static VariableRecordType fixedDatum3VarRecordType = VariableRecordType.SKE_FREQUENCY;
-
-  private static VariableDatum variableDatum1 = new VariableDatum();
-  private static VariableRecordType variableDatum1Type = VariableRecordType.ACLS_AIRCRAFT_REPORT;
-  private static String variableDatum1String = "varDatum1Value111";
-  private static byte[] variableDatum1Value = variableDatum1String.getBytes();
-
-  private static VariableDatum variableDatum2 = new VariableDatum();
-  private static VariableRecordType variableDatum2Type = VariableRecordType.Z_ACCELERATION;
-  private static byte[] variableDatum2Value = "222varDatum1Value222".getBytes();
+  private static final FixedDatum fixedDatum1 = new FixedDatum();
+  private static final int FIXED_DATUM_VALUE = 0x111111FF;
+  private static final VariableRecordType FIXED_DATUM_1_VAR_RECORD_TYPE = VariableRecordType.ACTIVATE_OWNSHIP;
+  private static final FixedDatum fixedDatum2 = new FixedDatum();
+  private static final int FIXED_DATUM2_VALUE = 0x222222FF;
+  private static final VariableRecordType FIXED_DATUM_2_VAR_RECORD_TYPE = VariableRecordType.HUMIDITY;
+  private static final FixedDatum fixedDatum3 = new FixedDatum();
+  private static final int FIXED_DATUM_3_VALUE = 0x333333FF;
+  private static final VariableRecordType FIXED_DATUM_3_VAR_RECORD_TYPE = VariableRecordType.SKE_FREQUENCY;
+
+  private static final VariableDatum variableDatum1 = new VariableDatum();
+  private static final VariableRecordType VARIABLE_DATUM_1_TYPE = VariableRecordType.ACLS_AIRCRAFT_REPORT;
+  private static final String VARIABLE_DATUM_1_STRING = "varDatum1Value111";
+  private static final byte[] variableDatum1Value = VARIABLE_DATUM_1_STRING.getBytes();
+
+  private static final VariableDatum variableDatum2 = new VariableDatum();
+  private static final VariableRecordType VARIABLE_DATUM_2_TYPE = VariableRecordType.Z_ACCELERATION;
+  private static final byte[] variableDatum2Value = "222varDatum1Value222".getBytes();
 
   static {
-    fixedDatum1.setFixedDatumValue(fixedDatum1Value);
-    fixedDatum1.setFixedDatumID(fixedDatum1VarRecordType);
+    fixedDatum1.setFixedDatumValue(FIXED_DATUM_VALUE);
+    fixedDatum1.setFixedDatumID(FIXED_DATUM_1_VAR_RECORD_TYPE);
 
-    fixedDatum2.setFixedDatumValue(fixedDatum2Value);
-    fixedDatum2.setFixedDatumID(fixedDatum2VarRecordType);
+    fixedDatum2.setFixedDatumValue(FIXED_DATUM2_VALUE);
+    fixedDatum2.setFixedDatumID(FIXED_DATUM_2_VAR_RECORD_TYPE);
 
-    fixedDatum3.setFixedDatumValue(fixedDatum3Value);
-    fixedDatum3.setFixedDatumID(fixedDatum3VarRecordType);
+    fixedDatum3.setFixedDatumValue(FIXED_DATUM_3_VALUE);
+    fixedDatum3.setFixedDatumID(FIXED_DATUM_3_VAR_RECORD_TYPE);
 
-    variableDatum1.setVariableDatumID(variableDatum1Type);
+    variableDatum1.setVariableDatumID(VARIABLE_DATUM_1_TYPE);
     variableDatum1.setVariableDatumValue(variableDatum1Value);
 
-    variableDatum2.setVariableDatumID(variableDatum2Type);
+    variableDatum2.setVariableDatumID(VARIABLE_DATUM_2_TYPE);
     variableDatum2.setVariableDatumValue(variableDatum2Value);
   }
 
diff --git a/testlibs/junit-jupiter-api-5.7.0.jar b/testlibs/junit-jupiter-api-5.7.0.jar
new file mode 100644
index 0000000000000000000000000000000000000000..64c98e19ff63744067cf750f064c14086dd2f5c0
Binary files /dev/null and b/testlibs/junit-jupiter-api-5.7.0.jar differ
diff --git a/testlibs/junit-jupiter-engine-5.7.0.jar b/testlibs/junit-jupiter-engine-5.7.0.jar
new file mode 100644
index 0000000000000000000000000000000000000000..31e46531edbaa8296c873bca3a9ee1ea8132702f
Binary files /dev/null and b/testlibs/junit-jupiter-engine-5.7.0.jar differ
diff --git a/testlibs/junit-platform-commons-1.6.2.jar b/testlibs/junit-platform-commons-1.6.2.jar
deleted file mode 100644
index ebe59cb9e6ed06a60105dfd792083fac6c95c48b..0000000000000000000000000000000000000000
Binary files a/testlibs/junit-platform-commons-1.6.2.jar and /dev/null differ
diff --git a/testlibs/junit-platform-console-1.6.2.jar b/testlibs/junit-platform-console-1.6.2.jar
deleted file mode 100644
index 46132c647229dd473fddd914d5675804c9587caa..0000000000000000000000000000000000000000
Binary files a/testlibs/junit-platform-console-1.6.2.jar and /dev/null differ
diff --git a/testlibs/junit-platform-console-standalone-1.7.0.jar b/testlibs/junit-platform-console-standalone-1.7.0.jar
new file mode 100644
index 0000000000000000000000000000000000000000..338c1cc2b7747dd88a0275a774c3bbeb3f94cc2a
Binary files /dev/null and b/testlibs/junit-platform-console-standalone-1.7.0.jar differ
diff --git a/testlibs/junit-platform-engine-1.6.2.jar b/testlibs/junit-platform-engine-1.6.2.jar
deleted file mode 100644
index d5ef8865495083c9301f4c7710468c4fb820585e..0000000000000000000000000000000000000000
Binary files a/testlibs/junit-platform-engine-1.6.2.jar and /dev/null differ
diff --git a/testlibs/junit-platform-launcher-1.6.2.jar b/testlibs/junit-platform-launcher-1.6.2.jar
deleted file mode 100644
index 50b4cf635a628ac0f515720771abc41e45ac143b..0000000000000000000000000000000000000000
Binary files a/testlibs/junit-platform-launcher-1.6.2.jar and /dev/null differ
diff --git a/testlibs/junit-platform-reporting-1.6.2.jar b/testlibs/junit-platform-reporting-1.6.2.jar
deleted file mode 100644
index 3548d29193130a3b01c57606fb65ba4611b62d36..0000000000000000000000000000000000000000
Binary files a/testlibs/junit-platform-reporting-1.6.2.jar and /dev/null differ