Artemis: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 26: | Zeile 26: | ||
Diese Meldung bedeutet, dass das Durchlaufen der Beispielinteraktion/Protokolle frühzeitig beendet wurde, also noch Ein-/Ausgaben erwartet werden. Was genau erwartet wird, kann unterschiedlich sein. Häufig liegt es daran, dass die Ausgaben nicht mit einem Zeilenumbruch (<syntaxhighlight lang="Java" inline>System.lineSeparator()</syntaxhighlight>) abgeschlossen wurden, beziehungsweise <syntaxhighlight lang="Java" inline>System.out.print()</syntaxhighlight> statt <syntaxhighlight lang="Java" inline>System.out.println()</syntaxhighlight> verwendet wurde, oder gar ganze Zeilen in der Ausgabe fehlen. | Diese Meldung bedeutet, dass das Durchlaufen der Beispielinteraktion/Protokolle frühzeitig beendet wurde, also noch Ein-/Ausgaben erwartet werden. Was genau erwartet wird, kann unterschiedlich sein. Häufig liegt es daran, dass die Ausgaben nicht mit einem Zeilenumbruch (<syntaxhighlight lang="Java" inline>System.lineSeparator()</syntaxhighlight>) abgeschlossen wurden, beziehungsweise <syntaxhighlight lang="Java" inline>System.out.print()</syntaxhighlight> statt <syntaxhighlight lang="Java" inline>System.out.println()</syntaxhighlight> verwendet wurde, oder gar ganze Zeilen in der Ausgabe fehlen. | ||
=== Build gescheitert === | |||
Wenn der Build scheitert, liegt ein Compilation Error vor, der Code ist also nicht kompilierbar. Der Grund dafür wird angezeigt, dazu muss gegebenenfalls runtergescrollt werden, ist allerdings immer rot markiert und daher gut zu finden: | |||
Bild | |||
Die Fehlermeldung wird automatisch erzeugt und ist daher nicht 100%ig genau. Es wird die betroffene Klasse angezeigt, die Zeilen und Zeichennummer sowie eine kurze Beschreibung des Fehlers. Wenngleich die Beschreibung manchmal irreführend ist, so ist die Klassen- und Zeilenangabe meist ausreichend, um den Fehler zu identifizieren. In diesem Beispiel wurde der Kompilierungsfehler in der Klasse TicTacToe in Zeile 87 erzeugt. | |||
=== UnsupportedOperationException: Implementation missing === | |||
Die Vorlagen enthalten manchmal bereits Code, der zur Vereinfachung verwendet werden kann. Darin wird meist eine UnsupportedOperationException geworfen, um bei den Tests direkt anzuzeigen, dass die Klassen nicht fertig implementiert sind, bzw. etwas vergessen wurde. Der Wurf dieser Exception muss entfernt und mit dem eigenen Code ersetzt werden. Wird dieser Fehler dennoch angezeigt, so liegt es daran, dass die Exception noch enthalten ist, gegebenenfalls weil die Vorlage gar nicht verwendet wurde, aber sich dennoch in der Abgabe befindet. | |||
[[Kategorie:Organisation]] | [[Kategorie:Organisation]] | ||
[[Hauptseite]] | [[Hauptseite]] |
Version vom 12. Februar 2024, 12:12 Uhr
🚧 | Diese Seite befindet sich in Bearbeitung | 🚧 |
Was ist Artemis?
Wie klone ich ein Projekt von Artemis?
Wie lade ich eine neue Version meines Projektes auf Artemis hoch?
Was bedeuted mein Ergebnis?
Wie oben zu sehen gibt es einige interessante Stellen im Feedback.
1. Hier findest du einen Link zu dem Commit, der Bewertet wurde. Das ist in der Regel die letzte Version die hochgeladen wurde.
2. In diesem Block sind Tests zu finden, die Fehlgeschlagen sind. Meißt steht dabei, wo genau, was gesendet wurde und was erwartet wurde. Auch zu finden ist hier eine Aufbröselung des Feedbacks und in welchen Kategorien es Abzüge gab und auch wie viel.
3. Hier sind Kommentare zu den einzelnen Abzügen zu finden, sowie Tipps und Tricks der Tutoren. Auch zu finden sind hier Anmerkungen zu Stellen, die zukünftig Abzug geben würden.
4. Hier werden alle Tests angezeigt, die erfolgreich waren. Auch stehen dort die Punkte, die für jeden einzelnen Test vergeben wurden.
Es ist etwas schief gelaufen.. was tu ich jetzt?
Eigene lokale tests funktionieren, in Artemis jedoch nicht
Code zu Testen ist eine Wissenschaft für sich und wird oft nicht korrekt umgesetzt. Da sporadisch geschriebene Tests oft visuell validiert werden, liegt darin, neben dem Mensch selbst, auch das größte Fehlerpotenzial. Insbesondere sind Leerzeichen am Ende der Zeile, oder fehlende/zusätzliche Zeilenumbrüche nicht/schwer erkennbar. Dadurch scheint es, als würden die Beispielinteraktionen korrekt umgesetzt werden, wird es tatsächlich jedoch nicht, was in Artemis zum Nichtbestehen der Tests führt. Zudem sollte sichergestellt werden, dass die Interaktionen tatsächlich korrekt eingegeben werden, hierbei hilft oft direktes Kopieren aus den Aufgaben, oder den Fehlermeldungen in Artemis.
Zudem sollten Systemabhängigkeiten vermieden werden, da die Tests nicht zwangsläufig auf dem gleichen System ausgeführt werden. Eine häufige Fehlerquelle hierbei sind wieder Zeilenumbrüche, die je nach System unterschiedlich sein können.
Exited Prematurely
Diese Meldung bedeutet, dass das Durchlaufen der Beispielinteraktion/Protokolle frühzeitig beendet wurde, also noch Ein-/Ausgaben erwartet werden. Was genau erwartet wird, kann unterschiedlich sein. Häufig liegt es daran, dass die Ausgaben nicht mit einem Zeilenumbruch (System.lineSeparator()
) abgeschlossen wurden, beziehungsweise System.out.print()
statt System.out.println()
verwendet wurde, oder gar ganze Zeilen in der Ausgabe fehlen.
Build gescheitert
Wenn der Build scheitert, liegt ein Compilation Error vor, der Code ist also nicht kompilierbar. Der Grund dafür wird angezeigt, dazu muss gegebenenfalls runtergescrollt werden, ist allerdings immer rot markiert und daher gut zu finden:
Bild
Die Fehlermeldung wird automatisch erzeugt und ist daher nicht 100%ig genau. Es wird die betroffene Klasse angezeigt, die Zeilen und Zeichennummer sowie eine kurze Beschreibung des Fehlers. Wenngleich die Beschreibung manchmal irreführend ist, so ist die Klassen- und Zeilenangabe meist ausreichend, um den Fehler zu identifizieren. In diesem Beispiel wurde der Kompilierungsfehler in der Klasse TicTacToe in Zeile 87 erzeugt.
UnsupportedOperationException: Implementation missing
Die Vorlagen enthalten manchmal bereits Code, der zur Vereinfachung verwendet werden kann. Darin wird meist eine UnsupportedOperationException geworfen, um bei den Tests direkt anzuzeigen, dass die Klassen nicht fertig implementiert sind, bzw. etwas vergessen wurde. Der Wurf dieser Exception muss entfernt und mit dem eigenen Code ersetzt werden. Wird dieser Fehler dennoch angezeigt, so liegt es daran, dass die Exception noch enthalten ist, gegebenenfalls weil die Vorlage gar nicht verwendet wurde, aber sich dennoch in der Abgabe befindet.