Quality Monitor
🚦 Tests: 78 % successful (❌ 27 failed, ✔️ 97 passed)
〰️ Line Coverage: 87% (155 missed lines)
➰ Branch Coverage: 80% (60 missed branches)
Mutation Coverage: 0% (0 survived mutations)
CheckStyle: No warnings
PMD: 9 warnings (0 error, 1 high, 7 normal, 1 low)
SpotBugs: No warnings\
🚧 Error Messages
Quality Monitor Errors:
No matching report files found when using pattern '**/target/pit-reports/mutations.xml'! Configuration error for 'Mutation Coverage'?
Created by Quality Monitor v1.10.0 (#9c48d50)
Details
☀️ Quality Monitor
🚦 Tests
Name | Reports | Passed | Skipped | Failed | Total |
---|---|---|---|---|---|
Tests | 20 | 97 | 0 | 27 | 124 |
Failures
edu.hm.hafner.grading.TestMarkdownTest:shouldTruncateFailures\
Expecting actual:
"## 🚦 JUnit - 0 of 100
Name | Reports | Passed | Skipped | Failed | Total | Impact |
---|---|---|---|---|---|---|
JUnit | 1 | 0 | 0 | 400 | 400 | -400 |
💰 | ➖ | - | - | -1 | ➖ | ➖ |
Too many test failures. Grading output truncated.
"
to contain:
"StackTrace-50" \
Stack Trace
java.lang.AssertionError:
Expecting actual:
"## :vertical_traffic_light: JUnit - 0 of 100
<img title="JUnit: 0%" width="110" height="110"
align="left" alt="JUnit: 0%"
src="https://raw.githubusercontent.com/uhafner/autograding-model/main/percentages/000.svg" />
|Name|Reports|Passed|Skipped|Failed|Total|Impact
|:-:|:-:|:-:|:-:|:-:|:-:|:-:
|JUnit|1|0|0|400|400|-400
|:moneybag:|:heavy_minus_sign:|*-*|*-*|*-1*|:heavy_minus_sign:|:heavy_minus_sign:
Too many test failures. Grading output truncated.
"
to contain:
"StackTrace-50"
at edu.hm.hafner.grading.TestMarkdownTest.shouldTruncateFailures(TestMarkdownTest.java:301)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
expected:
"xxxxxxxxx
Truncated"
but was:
"xxxxxxxxx
Truncated
"\
Stack Trace
org.opentest4j.AssertionFailedError:
expected:
"xxxxxxxxx
Truncated"
but was:
"xxxxxxxxx
Truncated
"
at edu.hm.hafner.grading.TruncatedStringTest.shouldTruncateStrings(TruncatedStringTest.java:71)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:1024)
at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:1024)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
Too many test failures. Grading output truncated.##
Name | Reports | Errors | High | Normal | Low | Total |
---|---|---|---|---|---|---|
CheckStyle | 2 | 0 | 0 | 0 | 0 | 0 |
PMD | 4 | 0 | 1 | 7 | 1 | 9 |
Total | 6 | 0 | 1 | 7 | 1 | 9 |
🐛 Bugs
Name | Reports | Errors | High | Normal | Low | Total |
---|---|---|---|---|---|---|
SpotBugs | 1 | 0 | 0 | 0 | 0 | 0 |
👣 Code Coverage
Name | Covered % | Missed % |
---|---|---|
Line Coverage | 87 | 13 |
Branch Coverage | 80 | 20 |
Total Ø | 83 | 17 |
🔬 Mutation Coverage
Name | Killed % | Survived % |
---|---|---|
Mutation Coverage | 0 | 100 |
🚧 Error Messages
Quality Monitor Errors:
No matching report files found when using pattern '**/target/pit-reports/mutations.xml'! Configuration error for 'Mutation Coverage'?
Annotations
Check warning on line 86 in src/main/java/edu/hm/hafner/grading/TestMarkdown.java
github-actions / Quality Monitor
PMD: UnnecessaryFullyQualifiedName
Unnecessary qualifier 'ScoreMarkdown': 'PARAGRAPH' is already in scope because it is inherited by an enclosing type.
Check warning on line 89 in src/main/java/edu/hm/hafner/grading/TestMarkdown.java
github-actions / Quality Monitor
PMD: UnnecessaryFullyQualifiedName
Unnecessary qualifier 'ScoreMarkdown': 'LINE_BREAK' is already in scope because it is inherited by an enclosing type.
Check warning on line 95 in src/main/java/edu/hm/hafner/grading/TestMarkdown.java
github-actions / Quality Monitor
PMD: UnnecessaryFullyQualifiedName
Unnecessary qualifier 'ScoreMarkdown': 'PARAGRAPH' is already in scope because it is inherited by an enclosing type.
Check warning on line 98 in src/main/java/edu/hm/hafner/grading/TestMarkdown.java
github-actions / Quality Monitor
PMD: UnnecessaryFullyQualifiedName
Unnecessary qualifier 'ScoreMarkdown': 'LINE_BREAK' is already in scope because it is inherited by an enclosing type.
Check warning on line 104 in src/main/java/edu/hm/hafner/grading/TestMarkdown.java
github-actions / Quality Monitor
PMD: UnnecessaryFullyQualifiedName
Unnecessary qualifier 'ScoreMarkdown': 'PARAGRAPH' is already in scope because it is inherited by an enclosing type.
github-actions / Quality Monitor
PMD: CollapsibleIfStatements
These nested if statements could be combined.
github-actions / Quality Monitor
PMD: UnusedImports
Avoid unused imports such as 'org.eclipse.ui.IWorkbenchPart'.
github-actions / Quality Monitor
PMD: EmptyCatchBlock
Avoid empty catch blocks.
github-actions / Quality Monitor
PMD: EmptyCatchBlock
Avoid empty catch blocks.
Check warning on line 56 in src/main/java/edu/hm/hafner/grading/CoverageConfiguration.java
github-actions / Quality Monitor
Not covered line
Line 56 is not covered by tests
Check warning on line 104 in src/main/java/edu/hm/hafner/grading/CoverageScore.java
github-actions / Quality Monitor
Not covered lines
Lines 101-104 are not covered by tests
Check warning on line 178 in src/main/java/edu/hm/hafner/grading/CoverageScore.java
github-actions / Quality Monitor
Not covered lines
Lines 175-178 are not covered by tests
Check warning on line 184 in src/main/java/edu/hm/hafner/grading/CoverageScore.java
github-actions / Quality Monitor
Not covered line
Line 184 is not covered by tests
Check warning on line 52 in src/main/java/edu/hm/hafner/grading/TruncatedString.java
github-actions / Quality Monitor
Not covered line
Line 52 is not covered by tests
Check warning on line 222 in src/main/java/edu/hm/hafner/grading/TruncatedString.java
github-actions / Quality Monitor
Not covered line
Line 222 is not covered by tests
Check warning on line 236 in src/main/java/edu/hm/hafner/grading/TruncatedString.java
github-actions / Quality Monitor
Not covered line
Line 236 is not covered by tests
Check warning on line 277 in src/main/java/edu/hm/hafner/grading/TruncatedString.java
github-actions / Quality Monitor
Not covered lines
Lines 276-277 are not covered by tests
Check warning on line 122 in src/main/java/edu/hm/hafner/grading/AnalysisScore.java
github-actions / Quality Monitor
Not covered line
Line 122 is not covered by tests
Check warning on line 203 in src/main/java/edu/hm/hafner/grading/CommentBuilder.java
github-actions / Quality Monitor
Not covered lines
Lines 200-203 are not covered by tests
Check warning on line 265 in src/main/java/edu/hm/hafner/grading/CommentBuilder.java
github-actions / Quality Monitor
Not covered lines
Lines 248-265 are not covered by tests
Check warning on line 271 in src/main/java/edu/hm/hafner/grading/CommentBuilder.java
github-actions / Quality Monitor
Not covered line
Line 271 is not covered by tests
Check warning on line 276 in src/main/java/edu/hm/hafner/grading/CommentBuilder.java
github-actions / Quality Monitor
Not covered line
Line 276 is not covered by tests
Check warning on line 321 in src/main/java/edu/hm/hafner/grading/CommentBuilder.java
github-actions / Quality Monitor
Not covered lines
Lines 298-321 are not covered by tests
Check warning on line 46 in src/main/java/edu/hm/hafner/grading/ReportFinder.java
github-actions / Quality Monitor
Not covered line
Line 46 is not covered by tests
Check warning on line 64 in src/main/java/edu/hm/hafner/grading/ReportFinder.java
github-actions / Quality Monitor
Not covered lines
Lines 61-64 are not covered by tests