Umwelt
- Visual Studio 2012 Premium-Update 3
- Team Foundation Server 2012 Update 3
- bearbeiten: .NET Framework 4
- Default (DefaultTemplate.11.1.xaml)
- Visual Studio Test Runner
- Zielplattform: X86
- Visual Studio Test Runner
Problem
Ich habe 2 Unit-Test-Baugruppen:Microsoft Fake & TFS 2012 Visual Studio Test Runner - Einheit Test nicht sporadisch
- ExtensionTests
- UserTests
beide verwenden das Microsoft Fakes Framework (mit Stubs und Shims).
Ausführen der Unit-Tests arbeitet lokal feine (auf 4 verschiedene Maschinen getestet, auch auf dem Visual Studio auf dem Build-Server installiert ist), aber wenn wir einen Build-Agenten bauen mit, einig Unit-Test mit Ausnahme fehlschlägt, zB :
Unable to create instance of class UserTests.ClientUserTest. Error: System.TypeLoadException: Could not load type 'WorldDirect.CCM.Shared.Backend.SmartClassic.Fakes.StubClient' from assembly 'WorldDirect.Smart.Backend.Fakes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.
oder das gleiche für eine Shim:
Test method ExtensionTests.ExtensionTests.UpdateExtensionValidate_NoGrnp_ChecksIpPbxDependencies threw exception: System.TypeLoadExceptio: Could not load type 'WorldDirect.CCM.Shared.Backend.SmartClassic.Fakes.ShimIpPbxRemoteDestination' from assembly 'WorldDirect.Smart.Backend.Fakes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.
das interessante daran ist, sie nicht ein wenig Statistik sporadisch habe, habe ich versucht zu bilden:
# | Outcome | Comment
19 | 64/64 passed | only 'UserTests'-UnitTests run, 'ExtensionTests' inactive
20 | 37/64 passed | same source code as #19
21 | 64/64 passed | same source code as #19
22 | 64/66 passed | all 'UserTests' run as well as 2 'ExtensionTests', others still inactive; the 2 ExtensionTests failed with ShimIpPbxRemoteDestination-TypeLoadException
23 | 38/65 passed | same source code as #22, notice NOTHING has changed, however 1 unit test was not even run in 'ExtensionTests'; however the second succeeds; all unit tests in 'UserTests' using MS Fakes fail with a StubClient-TypeLoadException
24 | 38/65 passed | same source code as #22
new day - no more luck :-(
1 | 37/64 passed | uncommented the 2 'ExtensionTests', so same code as #19
2 | 37/64 passed | so same code as #1
3 | 64/64 passed | so same code as #1; suddenly they all work again
Beachten Sie, dass neben den genannten Änderungen niemand den Quellcode geändert hat.
Alle Builds wurden mit einer detaillierten Log-Ebene erstellt; Shim Diagnostic = "wahr";
Nur explizit benötigte Shims/Stubs sind in der .fakes-Datei enthalten (sonst konnte MSBUILD den Exit-Code 1 nicht verwenden).
Es scheint alles ziemlich magisch zu sein, möglicherweise hat jemand schon die gleichen Probleme erlebt oder jemand hat einen Hinweis.
Vielen Dank im Voraus
Bitte senden Sie einen Fehler mit einem kleinen Projekt, das das Problem reproduziert unter http://connect.Microsoft.com/VisualStudio. –
Bug ist offen, siehe https://connect.microsoft.com/VisualStudio/feedback/details/794458/microsoft-fakes-tfs-2012-visual-studio-test-runner-unit-test-fail-sporadically – shadowrunner
Vielen Dank . Wir haben heute damit begonnen, daran zu arbeiten. –