From 1af0ecf099c7772503a7860abbf8ace5601cf480 Mon Sep 17 00:00:00 2001 From: Martin Goik <goik@hdm-stuttgart.de> Date: Fri, 11 Mar 2016 20:29:06 +0100 Subject: [PATCH] Play it again, Sam --- Klausuren/Sd1/Ws2015/Exam/.gitignore | 3 + Klausuren/Sd1/Ws2015/Exam/pom.xml | 27 ++- .../mi/bitte_ignorieren/Marking.java | 14 -- .../mi/bitte_ignorieren/MarkingTest.java | 29 --- .../mi/bitte_ignorieren/ResultCollector.java | 172 ------------------ .../mi/bitte_ignorieren/Run.java | 31 ---- .../mi/bitte_ignorieren/TestResult.java | 19 -- .../hdm_stuttgart/mi/runtests/AllTests.java | 9 - .../mi/runtests/DetailedTestResults.java | 21 --- .../mi/runtests/ReachedPoints.java | 51 ------ .../sw1/klausur/test/GetMarks.java | 10 + .../sw1/klausur/test/Test_Helper.java | 3 +- .../klausur/test/Test_SpielNaechsteRunde.java | 6 +- 13 files changed, 42 insertions(+), 353 deletions(-) create mode 100644 Klausuren/Sd1/Ws2015/Exam/.gitignore delete mode 100644 Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/mi/bitte_ignorieren/Marking.java delete mode 100644 Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/mi/bitte_ignorieren/MarkingTest.java delete mode 100644 Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/mi/bitte_ignorieren/ResultCollector.java delete mode 100644 Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/mi/bitte_ignorieren/Run.java delete mode 100644 Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/mi/bitte_ignorieren/TestResult.java delete mode 100644 Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/mi/runtests/AllTests.java delete mode 100644 Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/mi/runtests/DetailedTestResults.java delete mode 100644 Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/mi/runtests/ReachedPoints.java create mode 100644 Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/sw1/klausur/test/GetMarks.java diff --git a/Klausuren/Sd1/Ws2015/Exam/.gitignore b/Klausuren/Sd1/Ws2015/Exam/.gitignore new file mode 100644 index 000000000..857955ec6 --- /dev/null +++ b/Klausuren/Sd1/Ws2015/Exam/.gitignore @@ -0,0 +1,3 @@ +/.classpath +/.project +/.settings \ No newline at end of file diff --git a/Klausuren/Sd1/Ws2015/Exam/pom.xml b/Klausuren/Sd1/Ws2015/Exam/pom.xml index b39707ec4..00416b2d4 100644 --- a/Klausuren/Sd1/Ws2015/Exam/pom.xml +++ b/Klausuren/Sd1/Ws2015/Exam/pom.xml @@ -3,16 +3,31 @@ <modelVersion>4.0.0</modelVersion> <groupId>de.hdm-stuttgart.sw1.klausur</groupId> - <artifactId>sw1Solution</artifactId> + <artifactId>sw1exam</artifactId> <version>0.9</version> <packaging>jar</packaging> - <name>sw1Solution</name> + <name>sw1Exam</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> + + <repositories> + <repository> + <releases> + <enabled>true</enabled> + <updatePolicy>always</updatePolicy> + <checksumPolicy>fail</checksumPolicy> + </releases> + <id>YourId</id> + <name>YourName</name> + <url>https://maven.mi.hdm-stuttgart.de/artifacts</url> + <layout>default</layout> + </repository> + </repositories> + <build> <plugins> @@ -73,6 +88,7 @@ </build> <dependencies> + <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> @@ -84,11 +100,18 @@ <artifactId>log4j-api</artifactId> <version>2.1</version> </dependency> + <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.1</version> </dependency> + + <dependency> + <groupId>de.hdm_stuttgart.mi.exam</groupId> + <artifactId>unitmarking</artifactId> + <version>0.9</version> + </dependency> </dependencies> </project> diff --git a/Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/mi/bitte_ignorieren/Marking.java b/Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/mi/bitte_ignorieren/Marking.java deleted file mode 100644 index b9b00c7cf..000000000 --- a/Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/mi/bitte_ignorieren/Marking.java +++ /dev/null @@ -1,14 +0,0 @@ -package de.hdm_stuttgart.mi.bitte_ignorieren; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - - -@Retention( value = RetentionPolicy.RUNTIME) -@Target( value = { ElementType.METHOD}) -public @interface Marking { - - int points (); -} diff --git a/Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/mi/bitte_ignorieren/MarkingTest.java b/Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/mi/bitte_ignorieren/MarkingTest.java deleted file mode 100644 index fe99181ad..000000000 --- a/Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/mi/bitte_ignorieren/MarkingTest.java +++ /dev/null @@ -1,29 +0,0 @@ -package de.hdm_stuttgart.mi.bitte_ignorieren; - -import org.junit.AfterClass; -import org.junit.Rule; -import org.junit.runner.Description; - -public class MarkingTest { - - static public Description currentTestClass = null; - - static public boolean provideExtraInfo = false; - - public final static ResultCollector globalresultCollector = new ResultCollector(); - - @Rule - public ResultCollector collectedResults = globalresultCollector; - - @AfterClass public static void showResults() { - if (provideExtraInfo) { - System.out.println("Local:----------------------------------"); - System.out.println(globalresultCollector.currentToString()); - System.out.println("Global:++++++++++++++++++++++++++++++++++"); - System.out.println("Global:++++++++++++++++++++++++++++++++++"); - System.out.println(globalresultCollector.toString()); - System.out.println("Global:++++++++++++++++++++++++++++++++++"); - System.out.println("Global:++++++++++++++++++++++++++++++++++"); - } - } -} diff --git a/Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/mi/bitte_ignorieren/ResultCollector.java b/Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/mi/bitte_ignorieren/ResultCollector.java deleted file mode 100644 index cf5529bdb..000000000 --- a/Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/mi/bitte_ignorieren/ResultCollector.java +++ /dev/null @@ -1,172 +0,0 @@ -package de.hdm_stuttgart.mi.bitte_ignorieren; - -import java.lang.annotation.Annotation; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Vector; - -import org.junit.rules.TestWatcher; -import org.junit.runner.Description; - -public class ResultCollector extends TestWatcher { - - public final Map<String, List<TestResult>> - failedByDescription = new HashMap<String, List<TestResult>>(), - successByDescription = new HashMap<String, List<TestResult>>(); - - - - @Override - protected void starting(Description description) { - MarkingTest.currentTestClass = description; - - // Init with empty list: All tests may fail! - // Unfortunately there is no better hook in TestWatcher. - if (null == failedByDescription.get(description.getClassName())) { - failedByDescription.put(description.getClassName(), new Vector<TestResult>()); - } - if (null == successByDescription.get(description.getClassName())) { - successByDescription.put(description.getClassName(), new Vector<TestResult>()); - } - } - - @Override - protected void failed(final Throwable e, final Description description) { - putAppend(failedByDescription, description.getClassName(), new TestResult(description, - getMarking(description), false)); - } - - @Override - protected void succeeded(final Description description) { - putAppend(successByDescription, description.getClassName(), new TestResult(description, - getMarking(description), true)); - } - - private static void putAppend(final Map<String, List<TestResult>> map, final String key, final TestResult testresult) { - List<TestResult> results = map.get(key); - if (null == results) { - results = new Vector<TestResult>(); - map.put(key, results); - } - results.add(testresult); - } - private static Marking getMarking(final Description description) { - - final Marking marking = description.getAnnotation(Marking.class); - if (null == marking) { // Default values: 1 point - return new Marking() { - - @Override - public Class<? extends Annotation> annotationType() { - return Marking.class; - } - - @Override - public int points() { - return 1; - } - }; - - } - return marking; - } - - public String currentToString() { - - final String currentTestClassName = MarkingTest.currentTestClass.getClassName(); - - int reachablePoints = 0, reachedPoints = 0, numSuccessfulTests = 0; - - final List<TestResult> successfulTestResults = successByDescription.get(currentTestClassName); - - if (null != successfulTestResults) { - for (final TestResult t : successfulTestResults) { - reachablePoints += t.marking.points(); - reachedPoints += t.marking.points(); - numSuccessfulTests++; - } - } - - final StringBuffer failBuffer = new StringBuffer(); - - final List<TestResult> failedTestResults = failedByDescription.get(currentTestClassName); - - if (null != failedTestResults) { - for (final TestResult t : failedTestResults) { - reachablePoints += t.marking.points(); - failBuffer.append(" -" + t.testMethodDisplayName + "\n"); - } - } - - final StringBuffer buffer = new StringBuffer(); - - buffer.append(currentTestClassName + ":\nYou have reached " + reachedPoints + " of " - + reachablePoints + " possible points in " + numSuccessfulTests + " successful tests. "); - - if (null != failedTestResults) { - - final int numFailed = failedTestResults.size(); - if (1 == numFailed) { - buffer.append(" The following test still fails:\n"); - } else if (1 < numFailed) { - buffer.append("\n\nThe following " + numFailed + " tests still fail:\n"); - } - buffer.append(failBuffer + "\n"); - } - buffer.append("\n"); - return buffer.toString(); - } - - public String getReachedPoints() { - final StringBuffer ret = new StringBuffer(); - - for (final Entry<String, List<TestResult>> successEntries: successByDescription.entrySet()) { - int sum = 0; - for (final TestResult t : successEntries.getValue()) { - sum +=t.marking.points(); - } - - ret.append(successEntries.getKey() + " " + sum + " "); - } - return ret.toString(); - } - - @Override - public String toString() { - - int reachablePoints = 0, reachedPoints = 0, successfulTests = 0, failedTests = 0; - - for (final Entry<String, List<TestResult>> successEntries: successByDescription.entrySet()) { - for (final TestResult t : successEntries.getValue()) { - successfulTests++; - reachablePoints += t.marking.points(); - reachedPoints += t.marking.points(); - } - } - - final StringBuffer failBuffer = new StringBuffer(); - for (final Entry<String, List<TestResult>> failEntries: failedByDescription.entrySet()) { - for (final TestResult t : failEntries.getValue()) { - failedTests++; - reachablePoints += t.marking.points(); - failBuffer.append(" -" + t.testMethodDisplayName + "\n"); - } - } - - final StringBuffer buffer = new StringBuffer(); - - buffer.append("You have reached " + reachedPoints + " of " - + reachablePoints + " possible points in " - + successfulTests + " successful tests\n"); - if (1 == failedTests) { - buffer.append("\n\nThe following test still fails:\n"); - } else if (1 < failedTests) { - buffer.append("\n\nThe following " + failedTests - + " tests still fail:\n"); - } - buffer.append(failBuffer + "\n"); - return buffer.toString(); - } -} \ No newline at end of file diff --git a/Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/mi/bitte_ignorieren/Run.java b/Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/mi/bitte_ignorieren/Run.java deleted file mode 100644 index d46c24a79..000000000 --- a/Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/mi/bitte_ignorieren/Run.java +++ /dev/null @@ -1,31 +0,0 @@ -package de.hdm_stuttgart.mi.bitte_ignorieren; - -import java.util.Set; - -import org.junit.runner.JUnitCore; - -import de.hdm_stuttgart.mi.runtests.ReachedPoints; - -public class Run { - public static void main(String[] args) { - JUnitCore.runClasses(ReachedPoints.class); - killStillRunningJUnitTestcaseThreads(); - } - - @SuppressWarnings("deprecation") - private static void killStillRunningJUnitTestcaseThreads() { - Set<Thread> threadSet = Thread.getAllStackTraces().keySet(); - for (Thread thread : threadSet) { - if (!(thread.isDaemon())) { - final StackTraceElement[] threadStackTrace = thread.getStackTrace(); - if (threadStackTrace.length > 1) { - StackTraceElement firstMethodInvocation = threadStackTrace[threadStackTrace.length - 1]; - if (firstMethodInvocation.getClassName().startsWith("org.junit")) { - // HACK: must use deprecated method - thread.stop(); - } - } - } - } - } -} diff --git a/Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/mi/bitte_ignorieren/TestResult.java b/Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/mi/bitte_ignorieren/TestResult.java deleted file mode 100644 index d32e9e9de..000000000 --- a/Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/mi/bitte_ignorieren/TestResult.java +++ /dev/null @@ -1,19 +0,0 @@ -package de.hdm_stuttgart.mi.bitte_ignorieren; - -import org.junit.runner.Description; - -public class TestResult { - - public final Description testMethodDisplayName; - public final Marking marking; - public final boolean success; - - public TestResult(final Description testMethodDisplayName, - final Marking marking, - final boolean success) { - - this.testMethodDisplayName = testMethodDisplayName; - this.marking = marking; - this.success = success; - } -} diff --git a/Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/mi/runtests/AllTests.java b/Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/mi/runtests/AllTests.java deleted file mode 100644 index 05883ffe6..000000000 --- a/Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/mi/runtests/AllTests.java +++ /dev/null @@ -1,9 +0,0 @@ -package de.hdm_stuttgart.mi.runtests; - -import org.junit.runner.JUnitCore; - -public class AllTests { - public static void main(String[] args) { - JUnitCore.runClasses(ReachedPoints.class); - } -} diff --git a/Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/mi/runtests/DetailedTestResults.java b/Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/mi/runtests/DetailedTestResults.java deleted file mode 100644 index 6e6d58d54..000000000 --- a/Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/mi/runtests/DetailedTestResults.java +++ /dev/null @@ -1,21 +0,0 @@ -package de.hdm_stuttgart.mi.runtests; - -import org.junit.AfterClass; -import org.junit.BeforeClass; - -import de.hdm_stuttgart.mi.bitte_ignorieren.MarkingTest; - - -public class DetailedTestResults extends ReachedPoints { - - @BeforeClass public static void init() { - MarkingTest.provideExtraInfo = true; - } - - @AfterClass public static void showResults() { - System.out.println("---final------------------"); - System.out.println(MarkingTest.globalresultCollector.toString()); - //System.out.println(MarkingTest.globalresultCollector.); - } - -} diff --git a/Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/mi/runtests/ReachedPoints.java b/Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/mi/runtests/ReachedPoints.java deleted file mode 100644 index 02bdb7649..000000000 --- a/Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/mi/runtests/ReachedPoints.java +++ /dev/null @@ -1,51 +0,0 @@ -package de.hdm_stuttgart.mi.runtests; - -import java.io.IOException; -import java.io.OutputStream; -import java.io.PrintStream; - -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.runner.RunWith; -import org.junit.runners.Suite; - -import de.hdm_stuttgart.mi.bitte_ignorieren.MarkingTest; -import de.hdm_stuttgart.sw1.klausur.test.Test_Helper; -import de.hdm_stuttgart.sw1.klausur.test.Test_SpielNaechsteRunde; - - - - -@RunWith(Suite.class) -@Suite.SuiteClasses({ - Test_Helper.class, - Test_SpielNaechsteRunde.class, -}) - -public class ReachedPoints { - - - static final PrintStream dummyStream = new PrintStream(new OutputStream() { - - @Override - public void write(int b) throws IOException {} - - @Override - public void write(byte[] b) throws IOException {} - - @Override - public void write(byte[] b, int off, int len) throws IOException {} - }); - - final static PrintStream systemOutStream = System.out; - - @BeforeClass public static void init() { - System.setOut(dummyStream); - MarkingTest.provideExtraInfo = false; - } - - @AfterClass public static void showResults() { - System.setOut(systemOutStream); - System.out.println(MarkingTest.globalresultCollector.getReachedPoints()); - } -} diff --git a/Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/sw1/klausur/test/GetMarks.java b/Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/sw1/klausur/test/GetMarks.java new file mode 100644 index 000000000..aa165b221 --- /dev/null +++ b/Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/sw1/klausur/test/GetMarks.java @@ -0,0 +1,10 @@ +package de.hdm_stuttgart.sw1.klausur.test; + +import de.hdm_stuttgart.mi.exam.unitmarking.RunTests; + +public class GetMarks { + + public static void main(String[] args) { + RunTests.exec(Test_Helper.class, Test_SpielNaechsteRunde.class); + } +} diff --git a/Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/sw1/klausur/test/Test_Helper.java b/Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/sw1/klausur/test/Test_Helper.java index a901e51b8..766ebaa26 100644 --- a/Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/sw1/klausur/test/Test_Helper.java +++ b/Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/sw1/klausur/test/Test_Helper.java @@ -4,11 +4,10 @@ import org.junit.Assert; import org.junit.Test; //import de.hdm_stuttgart.mi.bitte_ignorieren.Marking; -import de.hdm_stuttgart.mi.bitte_ignorieren.MarkingTest; import static de.hdm_stuttgart.sw1.klausur.Helper.*; @SuppressWarnings({"javadoc"}) -public class Test_Helper extends MarkingTest { +public class Test_Helper { // Abschnitt getHaeufigkeit @Test(timeout=1000) diff --git a/Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/sw1/klausur/test/Test_SpielNaechsteRunde.java b/Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/sw1/klausur/test/Test_SpielNaechsteRunde.java index 32d9e5432..fc262bbf9 100644 --- a/Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/sw1/klausur/test/Test_SpielNaechsteRunde.java +++ b/Klausuren/Sd1/Ws2015/Exam/src/test/java/de/hdm_stuttgart/sw1/klausur/test/Test_SpielNaechsteRunde.java @@ -3,13 +3,13 @@ package de.hdm_stuttgart.sw1.klausur.test; import org.junit.Assert; import org.junit.Test; -import de.hdm_stuttgart.mi.bitte_ignorieren.Marking; +import de.hdm_stuttgart.mi.exam.unitmarking.Marking; + //import de.hdm_stuttgart.mi.bitte_ignorieren.Marking; -import de.hdm_stuttgart.mi.bitte_ignorieren.MarkingTest; import static de.hdm_stuttgart.sw1.klausur.Spielen.getTeilnehmerNaechsteRunde; @SuppressWarnings({"javadoc"}) -public class Test_SpielNaechsteRunde extends MarkingTest { +public class Test_SpielNaechsteRunde { @Test(timeout=1000) public void nullBehandlung () { -- GitLab