2014-04-05 2 views
9

Ich verwende Xunit.net mit Visual Studio Online Hosted Build. Meine Tests werden sowohl lokal als auch auf dem Build-Server erkannt und ausgeführt. Aber auf dem Build-Server bekomme ich diese Ausnahme (wodurch der Build den Status "Teilweise erfolgreich" erreicht). Das ist seltsam, da alle meine Tests tatsächlich entdeckt und ausgeführt werden.Ausnahme beim Entdecken von xUnit.net-Tests mit Visual Studio Online Build-Server

[xUnit.net 00:00:01.3170293] Exception discovering tests from C:\a\bin\xunit.runner.visualstudio.testadapter.dll: System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.VisualStudio.TestPlatform.ObjectModel, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. 
File name: 'Microsoft.VisualStudio.TestPlatform.ObjectModel, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' ---> System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.VisualStudio.TestPlatform.ObjectModel, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. 
File name: 'Microsoft.VisualStudio.TestPlatform.ObjectModel, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 

WRN: Assembly binding logging is turned OFF. 
To enable assembly bind failure logging, set the registry value HKLM\Software\Microsoft\Fusion!EnableLog to 1. 
Note: There is some performance penalty associated with assembly bind failure logging. 
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog]. 

    at System.Reflection.RuntimeAssembly.GetExportedTypes(RuntimeAssembly assembly, ObjectHandleOnStack retTypes) 
    at System.Reflection.RuntimeAssembly.GetExportedTypes() 
    at Xunit.Sdk.Executor.EnumerateTests..ctor(Executor executor, Object _handler)$$RethrowMarker$$ at ExceptionExtensions.RethrowWithNoStackTraceLoss(Exception ex) 
    at Xunit.RemoteAppDomainManager.CreateObjectTObject 
    at Xunit.Xunit1Executor.EnumerateTests(ICallbackEventHandler handler) 
    at Xunit.Xunit1.Find(Predicate`1 filter, Boolean includeSourceInformation, IMessageSink messageSink) 
    at Xunit.Xunit1.Find(Boolean includeSourceInformation, IMessageSink messageSink) 
    at Xunit.XunitFrontController.Find(Boolean includeSourceInformation, IMessageSink messageSink) 
    at Xunit.Runner.VisualStudio.TestAdapter.VsTestRunner.GetTests(IEnumerable`1 sources, IMessageLogger logger, XunitVisualStudioSettings settings, Stopwatch stopwatch) 

See http://go.microsoft.com/fwlink/?LinkId=254169 

Ich habe folgende nuget Pakete im Testprojekt installiert:

  • xunit 1.9.2
  • xunit.runner.visualstudio 0.99.2

Andere Unit-Test-Frameworks , wie MS Test und NUnit, funktionieren ohne Probleme. Das lässt mich glauben, dass das Problem bei Xunit.net und nicht bei Visual Studio Online liegt.

Ich habe auch ein Problem an der xUnit.net GitHub geöffnet, aber es bleibt ungelöst. https://github.com/xunit/xunit/issues/47

Wie kann ich das funktionieren? Kennt jemand eine Problemumgehung? Könnte ich die Fehlermeldung irgendwie unterdrücken?

Antwort

15

Der Testrounner versucht, die Komponententests in xunit.runner.visualstudio.testadapter.dll zu entdecken. Warum? Weil es der Standardspezifikation für Testquellen von *.test*.dll entspricht.

Wenn Sie die Standardspezifikation der Testquelle auf *.tests.dll oder etwas anderes genauer ändern, wird es funktionieren.

Quelle: http://erictummers.wordpress.com/2014/02/11/execute-xunit-tests-on-hosted-build-controller/

+4

Ich kam in einer ähnlichen Situation mit NUnit Test Adapter mit meinem Visual Studio Online Build und Umbenennung der Platzhalter, wie Sie darüber, wie gut fixierten vorgeschlagen. Die Fehlermeldung, die ich bekam: 'Abhängige Assembly Microsoft.VisualStudio.TestPlatform.ObjectModel, Version = 11.0.0.0, Kultur = neutral, PublicKeyToken = b03f5f7f11d50a3a von C: \ a \ bin \ NUnit.VisualStudio.TestAdapter.dll nicht gefunden. Kann ignoriert werden, wenn es kein NUnit-Projekt ist. Hoffe, dass dies jemand anderem helfen könnte, der über dieses Problem stolpert, mit Ausnahme von NUnit. –

Verwandte Themen