2017-08-29 1 views
0

Wir haben eine Reihe von etwa 1000 (derzeit) Tests, geschrieben in C#, die zweimal pro Woche laufen. Wir verwenden TFS 2017 Update 1 (On-Premise) und das System ist so konfiguriert, dass Tests auf 6 VMs ausgeführt werden, die auf einem anderen Computer eingerichtet sind. 4 dieser VMs führen Windows Server 2012 R2 aus, die anderen 2 sind Windows Server 2016. Alle sind mit Updates auf dem neuesten Stand. Die Entwicklung erfolgt mit VS 2017. Bei allen Tests handelt es sich um direkte, nicht-UI-funktionale Tests, bei denen Instanzen von SQL Server auf jeder Maschine verwendet werden, ohne dass während der Tests eine cross-machine Kommunikation stattfindet. Jede Maschine ist ihre eigene abgeschlossene Umgebung.TFS: nicht alle Agenten Maschinen laufen (irgendwelche) Tests während der Erstellung

Alle Tests laufen lokal gut (oder wenn sie fehlschlagen, wissen wir, warum und das ist in Ordnung). Wenn wir einen Build starten, scheinen der eigentliche Build und andere vorbereitende Schritte gut zu laufen. Wenn es jedoch zum Schritt "Ausführen von Funktionstests" kommt, beginnen nur EINIGE der Agentenmaschinen sie auszuführen, typischerweise 2 der 6, manchmal 3 und nicht normalerweise die gleichen. Mit Blick auf Task-Manager kann ich sehen, dass die anderen VMs keine Prozessoraktivität haben, von der zu sprechen ist. Ich habe keine Ahnung, warum das so sein sollte, oder warum es verschiedene Maschinen zu sein scheinen, die erfolgreich starten und Tests von Lauf zu Lauf starten.

Der Kicker ist, dass, weil alle Maschinen nicht laufen, dies uns über die Grenze von 6 Stunden Limit Testlauf, die ich in anderen Threads behandelt haben gesehen .... Ich habe alles versucht in diesen Threads (einschließlich die Einstellung in der .runsettings-Datei) und kann nicht dazu gebracht werden, dieses Timeout zu verlassen, und so bricht unser gesamter Lauf nach 6 Stunden ab, wobei viele der Tests abgebrochen werden. Aus irgendeinem Grund haben wir letzte Woche alle Tests sauber durchgeführt ... seit dem vorherigen Lauf hat sich nichts geändert und es wurde mit dem nächsten Lauf auf dieses Verhalten zurückgesetzt.

Einsicht auf entweder die „faulen“ Maschinen nicht Prüfungen oder das 6 Stunden Timeout zu entfernen wäre sehr willkommen ...

Zusätzlicher Hinweis: dieses Verhalten started „aus heiterem Himmel“, am oder um den August 9. Bis dahin wurden alle Maschinen wie gewünscht ausgeführt. Keine Software-Upgrades oder irgendetwas anderes verdächtiges passiert irgendwo in der Zeit. Obwohl das 6-Stunden-Zeitlimit-Ding mich seit einem Jahr oder so nervt.

+0

Haben Sie in der Build-Aufgabe Run Functional Tests die Option "Tests nach Anzahl der Maschinen verteilen" ausgewählt? –

+0

Ich habe die Einstellung "Tests nach Anzahl der Maschinen verteilen" entdeckt, glaube ich, als wir auf das Jahr 2017 umgestellt haben und seitdem eingestellt wurden. Die Einstellungen runTimeout und testTimeout sind in der Datei testsettings auf eine Woche festgelegt, und in der Datei runsettings befindet sich ein Verweis auf die Datei testsettings. – Dan

+0

Wie lauten die Einstellungen für die Task zur Bereitstellung des VisualStudio-Testagenten und den Task "Funktionstest ausführen"? Können Sie einen Screenshot für sie und die Build-Protokolle für diese beiden Aufgaben freigeben? –

Antwort

0

Es gibt eine Ausführungsoptionen namens Verteilen Tests nach Anzahl der Maschinen.

Statt Tests auf Baugruppenebene zu verteilen, so dass diese Einstellung Tests verteilen, basierend auf der Anzahl von Maschinen unabhängig von den Behälteranordnungen, um die Aufgabe gegeben.

Source Link

Hinweis: dass die Tests innerhalb einer DLL auch auf mehrere Maschinen verteilt werden könnten.


die 6 Stunden Einschränkung umgehen, können Sie die runTimeout testsettings Dateien in Stunden xx einstellen könnte und sollte erfolgreich mehr als 6 Stunden in der Lage Tests auszuführen.

<Execution> 
    <Timeouts runTimeout="36000000" testTimeout="5400000" /> 
    <AgentRule name="Execution Agents"> 
    </AgentRule> 
</Execution> 

Weitere Informationen erhalten Sie die Antwort in diesem Thread verweisen: TFS 2015 vNext : Test Run always abort after 6 hours

+0

Ich habe übrigens diesen Thread vor einiger Zeit gefunden und habe ihn komplett durchgelesen. Nichts schien die 6-Stunden-Ausgabe zu helfen. – Dan

0

Okay, nachdem sie durch alles geht zurück gründlich, entdeckte ich, dass es in meinem Setup eigentlich zwei Probleme.Die schwer fassbare war, dass meine runsettings-Datei NICHT den ForcedLegacyMode = True hatte, was offensichtlich notwendig ist, damit sie sogar nach der testsettings-Datei sucht. Sobald ich das korrigierte, entdeckte ich, dass es nicht korrekt auf meine Testsettings-Datei zeigte. Es gibt ein weiteres Problem danach, dass es jetzt keine Tests entdeckt, aber ich denke, dass das auf ein anderes Problem zurückzuführen sein könnte, also vermute ich, dass das Problem, wie ursprünglich angegeben, jetzt gelöst ist. Danke für die Vorschläge!

Verwandte Themen