2016-04-11 10 views
1

Ich lasse Selenium Nunit Tests auf dem TeamCity Server laufen, der lokal auf meinem Server läuft. Das Problem, das ich habe, ist einige der bestandenen Tests und einige von ihnen scheitern. Wenn ich jedoch die gleichen Tests mache, indem ich Visual Studios manuell öffne und die Tests von dort aus starte, scheinen sie zu bestehen.Laufen Selenium Nunit Tests auf Teamcity vs. lokal

Ich habe versucht, den TeamCity-Server neu zu starten, habe versucht, alle Dateien zu bereinigen. Löschen der Dateien und Neuaufbau alles außer nichts scheint zu funktionieren. Es ist nichts falsch mit den Tests und sie zum Laufen zu bringen, es sind nur die Tests, die die Behauptungen nicht bestehen, während dieselben Tests die Behauptungen bestehen, wenn ich sie manuell durch visuelle Studios führe.

Irgendwelche Gedanken zu was könnte das verursachen?

Antwort

0

Eine Möglichkeit ist, dass Ihr TeamCity eine andere Version von NUnit von Ihrem lokalen System verwendet. Ein anderes Beispiel ist, dass TC standardmäßig eine NUnit-Projektdatei generiert und Tests ausführt, bei denen diese verwendet wird, anstatt die Assemblys direkt auszuführen.

+0

Hey Charlie, danke für deine Eingabe! Ich denke, Ihr zweiter Punkt könnte gültig sein, da ich alle Pakete mit Nuget Installer wiederherstelle. Irgendwelche Gedanken darüber, wie ich mein Problem lösen könnte? Auch das, was ich bemerkt habe, ist, dass das Problem mit dem Selenium Webdriver sein könnte, da ich den Stacktrace für einige der fehlgeschlagenen Tests ansehe und er sagt, dass ein bestimmtes Element nicht anklickbar ist. Aber wenn ich den gleichen Test lokal durchführe, bekomme ich dieses Problem nicht ... also war ich auch etwas verwirrt. – chillax786

+0

Ich bin kein TC-Benutzer, aber ich lese in einem anderen Thread, dass sie eine obskure Einstellung haben, die dazu führt, dass Tests mehr wie die Sie selbst ausgeführt werden, mit nur der Assembly in der Befehlszeile, anstatt ein Projekt zu generieren. Es tut mir leid zu sagen, dass ich es nicht mit Google finden kann, aber vielleicht jemand anderes weiß, was es ist. :-( – Charlie

-1

Wenn ein bestimmter Test mit einem nicht anklickbaren Element immer falsch ist, liegt das daran, dass Sie auf Ihrem TC-Server eine andere Auflösung Ihres Web-Treibers verwenden als lokal.

Wenn dieser Test manchmal diesen Fehler auslöst, liegt das daran, dass Ihre Website schneller auf Ihrem TC-Server reagiert als lokal und manchmal können Sie manchmal nicht auf Ihr Element klicken.

Sie müssen sicher sein (irgendwo in Ihrem Code), dass Sie auf Ihre Elemente klicken können, wenn Sie sie verwendet haben.

Ich stieß auf diese Art von Problem mit SPA-Sites.

Ich habe eine unsichtbare Spalte geschrieben, wo ich feststelle, dass meine Seite wirklich bereit ist, benutzt zu werden.

Mit dieser unsichtbaren Spannweite habe ich dieses Problem nie wieder gesehen.

0

Ich bin mit dem gleichen Problem mit Teamcity Server konfrontiert, meine Konfiguration ist Visual Studio mit Nunit und Selenium Webdriver.

Was Sie tun können, half mir, eine Wait-Methode für die Elemente festzulegen, die dynamisch auf der Seite geladen werden. Wenn ein TeamCity-Agent einen Build auf VM ausführt, werden die Tests im Headless-Modus ausgeführt In der TeamCity-Konfiguration ist kein Wait/Thread.Sleep standardmäßig implementiert. @ chillax786

+0

Danke, @Pacurar Gabriel! Das Ausführen des TeamCity Agenten von der Konsole und nicht als Dienst half auch – chillax786

+0

@ chillax786 Wie kann das erreicht werden, klingt wie eine gute Lösung? Danke –

+0

Sie können das tun, indem Sie die Aufgabe öffnen Manager und Beenden des TeamCity-Build-Agenten, indem Sie zum Abschnitt Dienste des Task-Managers gehen und über die Befehlszeile den TeamCity-Agenten c: \ teamcity \ buildagent \ bin \ agent starten.Fledermaus Start – chillax786