Ich verwende Approval Tests. Auf meiner dev Maschine bin ich mit DiffReporter
glücklich, dass TortoiseDiff beginnt wenn meine Testergebnisse aus dem genehmigten unterscheiden:Wie funktioniert ApprovalTests bei Teamcity?
[UseReporter(typeof (DiffReporter))]
public class MyApprovalTests
{ ... }
jedoch, wenn die gleichen Tests auf Teamcity und Ergebnisse ausgeführt sind verschiedene Tests fehlschlagen mit dem folgenden Fehler:
Offensichtlich kann es tortoisemerge.exe nicht finden und das ist in Ordnung, weil es nicht auf Build Agent installiert ist. Aber was ist, wenn es installiert wird? Dann wird für jeden Fehler eine weitere Instanz von tortoisemerge.exe gestartet und niemand schließt sie. Schließlich werden Tonnen von tortoisemerge.exe Instanzen unsere Server töten :)
So ist die Frage - wie sollten Tests eingerichtet werden, um Tortoise Diff auf lokaler Maschine laufen zu lassen und nur Fehler auf Build-Server zu melden? Ich kenne #IF DEBUG [UseReporter(typeof (DiffReporter))]
, würde aber eine andere Lösung bevorzugen, wenn möglich.
Können Sie uns wissen lassen, welche Version von ApprovalTests Sie verwenden? –
Version ist 1.0.4381.19674 –
Ok. Ich war neugierig, denn in Version 1.17 wurde DiffReporter verstärkt, um verschiedene Reporter zu testen, bevor er schließlich aufgab und nur Assert oder QuietReporter anrief. In der neuesten Version sollten Sie diese Ausnahme also nicht sehen, obwohl dies Ihre Frage zu dem, was passiert, wenn jemand TortiseSVN installiert, nicht wirklich beantwortet. Ich kann Ihnen sagen, dass auf CC.NET nichts passiert ... TortiseMerge startet nicht auf dem Server. –