[JENKINS-50070] Integration Test for FilesScanner

        Mir ist grad mit erschrecken aufgefallen, dass ich den FilesScanner auch komplett ohne irgendwelche Integrationen testen kann, da er keinerlei Abhängigkeiten hat. D.h. ich muss meine Testklasse nicht mal von "IntegrationsTest" ableiten, sondern kann das als normal JUnit test ausführen. Das ist jetzt natürlich ein Problem. Was soll ich da jetzt machen? Weil so macht es ja keinen Sinn.

        Alexander Praegla added a comment - Mir ist grad mit erschrecken aufgefallen, dass ich den FilesScanner auch komplett ohne irgendwelche Integrationen testen kann, da er keinerlei Abhängigkeiten hat. D.h. ich muss meine Testklasse nicht mal von "IntegrationsTest" ableiten, sondern kann das als normal JUnit test ausführen. Das ist jetzt natürlich ein Problem. Was soll ich da jetzt machen? Weil so macht es ja keinen Sinn.

        Ulli Hafner added a comment -

        Das verstehe ich nicht. Die Integration an diesem Test ist das Filesystem. Im Unit Test können Sie ja nicht auf das Dateisystem zugreifen. Der FileScanner soll auf die Dateien in verschiedenen Ordnern im Workspace zugreifen.

        Oder habe ich Sie da jetzt falsch verstanden?

        Ulli Hafner added a comment - Das verstehe ich nicht. Die Integration an diesem Test ist das Filesystem. Im Unit Test können Sie ja nicht auf das Dateisystem zugreifen. Der FileScanner soll auf die Dateien in verschiedenen Ordnern im Workspace zugreifen. Oder habe ich Sie da jetzt falsch verstanden?

        Wieso sollte ich im Unit Test nicht aufs Dateisystem zugreifen können? Und der FileScanner braucht nur irgend eine Datei als Wurzel für den Workspace, das muss aber nicht der Workspace eines Jobs sein. Deswegen hab ich bisher einfach mein ZIp entpackt und die nötige Datei in die "invoke" Methode des FilesScanners gesteckt.

        Dann muss ich jetzt schauen ob ich es bis heute nachmittag noch hinbekomme, das ganze auf einen anständigen Integrationstest umzubauen.

        Was mache ich, wenn ich es bis dahin nicht schaffe?

        Alexander Praegla added a comment - Wieso sollte ich im Unit Test nicht aufs Dateisystem zugreifen können? Und der FileScanner braucht nur irgend eine Datei als Wurzel für den Workspace, das muss aber nicht der Workspace eines Jobs sein. Deswegen hab ich bisher einfach mein ZIp entpackt und die nötige Datei in die "invoke" Methode des FilesScanners gesteckt. Dann muss ich jetzt schauen ob ich es bis heute nachmittag noch hinbekomme, das ganze auf einen anständigen Integrationstest umzubauen. Was mache ich, wenn ich es bis dahin nicht schaffe?

        Ulli Hafner added a comment - - edited

        Können war das falsche Wort. Dürfen hätte ich wohl sagen sollen. Das steht irgendwo in meinen Slides: Unit Tests dürfen nicht auf DB, Filesystem oder Internet zugreifen, da sie schnell sein sollen. In Ihrem Fall ist also gemäß meiner Definition ihr Test automatisch ein Integrationstest. Auch wenn er den Jenkins gar nicht braucht.

        Für den Vortrag spielt das keine Rolle, der Inhalt des Tests bleibt ja gleich, ob nun im Namen Unit oder Integrationstest steht. Stellen Sie daher einfach Ihre Tests vor, der Inhalt ist ja genau das, was ich wollte: es werden verschiedenen Dateien entpackt, eingelesen und aggregiert. Das ganze als Jenkins Integrationstest umzuwandeln ist für heute nicht nötig.

        (Wenn Sie das später noch so umwandeln, dass das im Jenkins entpackt wird, lassen sich noch weitere Aspekte testen, die bei Ihnen jetzt nicht möglich sind: was passiert, wenn der Scanner auf einem anderen Rechner läuft als der Master. Lassen sich alle Daten des Report serialisieren? Werden alle Daten auch in der Info-View des Jenkins angezeigt? etc. Das Thema werden wir dann sicher auch wieder bei den UI Tests aufgreifen, der Übergang ist fließend.) Aber das können wir dann im Anschluss heute noch kurz ansprechen, kümmern Sie sich erst mal um den Vortrag!

        Ulli Hafner added a comment - - edited Können war das falsche Wort. Dürfen hätte ich wohl sagen sollen. Das steht irgendwo in meinen Slides: Unit Tests dürfen nicht auf DB, Filesystem oder Internet zugreifen, da sie schnell sein sollen. In Ihrem Fall ist also gemäß meiner Definition ihr Test automatisch ein Integrationstest. Auch wenn er den Jenkins gar nicht braucht. Für den Vortrag spielt das keine Rolle, der Inhalt des Tests bleibt ja gleich, ob nun im Namen Unit oder Integrationstest steht. Stellen Sie daher einfach Ihre Tests vor, der Inhalt ist ja genau das, was ich wollte: es werden verschiedenen Dateien entpackt, eingelesen und aggregiert. Das ganze als Jenkins Integrationstest umzuwandeln ist für heute nicht nötig. (Wenn Sie das später noch so umwandeln, dass das im Jenkins entpackt wird, lassen sich noch weitere Aspekte testen, die bei Ihnen jetzt nicht möglich sind: was passiert, wenn der Scanner auf einem anderen Rechner läuft als der Master. Lassen sich alle Daten des Report serialisieren? Werden alle Daten auch in der Info-View des Jenkins angezeigt? etc. Das Thema werden wir dann sicher auch wieder bei den UI Tests aufgreifen, der Übergang ist fließend.) Aber das können wir dann im Anschluss heute noch kurz ansprechen, kümmern Sie sich erst mal um den Vortrag!

        Achso okay, ja das ist klar. Stand gerade nur auf dem Schlauch.

        Alles klar, dann schau ich, dass ich jetzt noch den Vortag zusammen bekommen. Danke.

        Alexander Praegla added a comment - Achso okay, ja das ist klar. Stand gerade nur auf dem Schlauch. Alles klar, dann schau ich, dass ich jetzt noch den Vortag zusammen bekommen. Danke.

        Eine Frage hab ich noch: Ich schaffe es nicht bei einer Datei die "Read" Berechtigung zu entfernen, geht über den Code nicht und auch nicht über die Konsole, haben Sie da eine Idee?

        Alexander Praegla added a comment - Eine Frage hab ich noch: Ich schaffe es nicht bei einer Datei die "Read" Berechtigung zu entfernen, geht über den Code nicht und auch nicht über die Konsole, haben Sie da eine Idee?

        Ulli Hafner added a comment -

        Fragen Sie mal das Team frankchrisg, mardin, die haben da einiges ausprobiert...

        Ulli Hafner added a comment - Fragen Sie mal das Team frankchrisg , mardin , die haben da einiges ausprobiert...

          alexanderpraegla Alexander Praegla
          drulli Ulli Hafner
          Votes:
          0 Vote for this issue
          Watchers:
          2 Start watching this issue

            Created:
            Updated:
            Resolved: