Sto usando Approval Tests. Sulla mia macchina dev Sono contento DiffReporter
che inizia TortoiseDiff quando i miei risultati dei test variano da approvato:Come utilizzare ApprovalTests su Teamcity?
[UseReporter(typeof (DiffReporter))]
public class MyApprovalTests
{ ... }
Tuttavia, quando gli stessi test sono in esecuzione su TeamCity ed i risultati sono diversi test che non con il seguente errore:
System.Exception : Unable to launch: tortoisemerge.exe with arguments ...
Error Message: The system cannot find the file specified
---- System.ComponentModel.Win32Exception : The system cannot find the file
specified
Ovviamente non è possibile trovare tortoisemerge.exe e va bene perché non è installato su build agent. Ma cosa succede se viene installato? Quindi, per ogni errore, verrà avviata un'altra istanza di tortoisemerge.exe e nessuno la chiuderà. Alla fine tonnellate di istanze di tortoisemerge.exe uccideranno i nostri server :)
Quindi la domanda è: come devono essere decorati i test per eseguire Tortoise Diff sulla macchina locale e solo segnalare errori sul server di build? Sono a conoscenza di #IF DEBUG [UseReporter(typeof (DiffReporter))]
ma preferirei un'altra soluzione, se possibile.
Puoi farci sapere quale versione di ApprovalTests che si sta utilizzando? La versione –
è 1.0.4381.19674 –
Ok. Ero curioso perché in 1.17 DiffReporter è stato rinforzato per provare alcuni reporter diversi prima di arrendersi e chiamare Assert, o QuietReporter. Quindi, nell'ultima versione non dovresti vedere quell'eccezione, anche se questo non risponde alla tua domanda su cosa succederebbe se qualcuno installasse TortiseSVN. Posso dirti che su CC.NET, non succede nulla ... TortiseMerge non si avvia sul server. –