Artemis: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 35: | Zeile 35: | ||
=== UnsupportedOperationException: Implementation missing === | === 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. | 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. | ||
=== Use of illegal class or package === | |||
In diesem Modul ist es nicht erlaubt bestimmte Elemente der Java API zu nutzen, dies hat vor allem didaktische Gründe. Den Bearbeitungshinweisen am Anfang jedes Blattes ist zu entnehmen, welche Pakete, oder Klassen (nicht) erlaubt sind. Einzelne Aufgaben können diese Regelung weiter Einschränken. | |||
=== A class which name is [...] could not be found === | |||
Wenn in der Abgabe eine geforderte Klasse nicht gefunden werden kann, erfüllt diese nicht eine der folgenden Anforderungen: | |||
* Die Klasse ist '''public''' | |||
* Alle Klassen besitzen eine gültige Paket Deklaration passend zu ihrem Ordner | |||
* Die Klassen liegen nicht außerhalb des "src" Ordners | |||
* Alle Java Quellcode Dateien enden mit ".java" | |||
=== Main method could not be resolved === | |||
Folgende Kriterien müssen erfüllt sein, damit die main() gefunden werden kann: | |||
* Die main-Methode muss '''static''' sein | |||
* Die Klasse und die Methode müssen '''public''' sein | |||
* Alle Klassen besitzen eine gültige '''Paket Deklaration''' passend zu ihrem '''Ordner''' | |||
* Die Klassen liegen nicht außerhalb des "'''src'''" Ordners | |||
* Alle Java Quellcode Dateien enden mit "'''.java'''" | |||
[[Kategorie:Organisation]] | [[Kategorie:Organisation]] | ||
[[Hauptseite]] | [[Hauptseite]] |
Version vom 12. Februar 2024, 12:17 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.
Use of illegal class or package
In diesem Modul ist es nicht erlaubt bestimmte Elemente der Java API zu nutzen, dies hat vor allem didaktische Gründe. Den Bearbeitungshinweisen am Anfang jedes Blattes ist zu entnehmen, welche Pakete, oder Klassen (nicht) erlaubt sind. Einzelne Aufgaben können diese Regelung weiter Einschränken.
A class which name is [...] could not be found
Wenn in der Abgabe eine geforderte Klasse nicht gefunden werden kann, erfüllt diese nicht eine der folgenden Anforderungen:
- Die Klasse ist public
- Alle Klassen besitzen eine gültige Paket Deklaration passend zu ihrem Ordner
- Die Klassen liegen nicht außerhalb des "src" Ordners
- Alle Java Quellcode Dateien enden mit ".java"
Main method could not be resolved
Folgende Kriterien müssen erfüllt sein, damit die main() gefunden werden kann:
- Die main-Methode muss static sein
- Die Klasse und die Methode müssen public sein
- Alle Klassen besitzen eine gültige Paket Deklaration passend zu ihrem Ordner
- Die Klassen liegen nicht außerhalb des "src" Ordners
- Alle Java Quellcode Dateien enden mit ".java"