2009-06-17 9 views
15

Ich habe einen Visual Studio 2008 Unit-Test, und ich erhalte die folgenden Laufzeitfehler zu setzen:Unable Testcontext Eigenschaft

Unable to set TestContext property for the class JMPS.PlannerSuite.DataServices.MyUnitTest. Error: System.ArgumentException: Object of type 'Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestAdapterContext' cannot be converted to type 'Microsoft.VisualStudio.TestTools.UnitTesting.TestContext' 

ich gelesen habe, dass VS 2008 nicht korrekt aktualisiert die Verweise auf die UnitTestFramework bei der Konvertierung 2005 Projekte. Mein Komponententest wurde 2008 erstellt, aber er erbt von einer Basisklasse, die in VS 2005 erstellt wurde. Ist das mein Problem? Muss meine Basisklasse 2008 neu aufgebaut werden? Ich würde das lieber nicht tun, da es sich auf andere Projekte auswirken wird.

In anderen abgeleiteten Komponententests, die 2005 erstellt wurden, mussten wir lediglich die TestContext-Eigenschaft im abgeleiteten Komponententest auskommentieren. Ich habe das im VS 2008 Unit Test ohne Glück versucht. Ich habe auch versucht, die TestContext-Eigenschaft neu zu "erstellen", die mir einen anderen Laufzeitfehler gibt.

Irgendwelche Ideen?

+0

Ich habe gerade versucht, die Basisklasse in VS 2008 zu konvertieren und jetzt scheint es zu funktionieren. Aber ich möchte das lieber nicht tun, da dies die Umwandlung anderer Projekte erzwingt. Wenn es also einen Weg gibt, wäre das großartig. – bsh152s

+0

Ich habe das gleiche Problem in einer Testklasse, die ich in VS2008 neu gebaut habe. – jcollum

Antwort

0

Ich stieß auf das gleiche Problem. Es stellte sich heraus, dass eines meiner Projekte auf die 8.0 Assemblies und das andere auf 9.0 referenzierte. Die Lösung kompiliert, aber ich habe eine Laufzeitausnahme bekommen.

1

Ich poste dies hier in der Hoffnung, dass es jemanden hilft, ein Smart-Device-Projekt zu testen. Ich habe einen sehr ähnlichen Fehler, wenn ich zum ersten Mal versuchte, einen Unit-Test für ein Verfahren in einem intelligenten Gerät Projekt auszuführen ich arbeite in Visual Studio 2008:

Error: System.ArgumentException: Object of type 'Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestAdapterContext' cannot be converted to type 'Microsoft.VisualStudio.TestTools.UnitTesting.TestContext' 

die Fehlerergebnisse zurückgegeben googeln, die vorgeschlagen wurde, verursacht durch ein Testprojekt vom Visual Studio 2005-Format auf 2008 aktualisiert wurde und der Verweis auf die UnitTestFramework.dll immer noch für die alte Version (8.0) galt und aktualisiert werden musste. Dies galt nicht für mich, da ich mein Testprojekt nicht von VS2005 aktualisiert hatte. Also habe ich weiter gesucht.

Nach Stunden des für den Fehler ohne Erfolg nach anderen Ursachen suchen, stieß ich auf den folgenden Referenzen in dem Smart-Geräteprojekt:

  • Microsoft.WindowsMobile.dll
  • Microsoft.WindowsMobile.Status.dll

Visual Studio wurde diese Referenzen aus dem folgenden Ordner zu erhalten:

C:\Program Files\Windows Mobile 5.0 SDK R2\Managed Libraries 

Die Zielplattform des Smart Device-Projekts war jedoch das Windows Mobile 6 Professional SDK. Das habe ich vorher nicht bemerkt, da ich das Smart Device Projekt ursprünglich nicht erstellt habe. So entfernte ich die Verweise auf die zwei DLLs und readded sie aus dem folgenden Ordner:

C:\Program Files\Windows Mobile 6 SDK\Managed Libraries 

Nach dem intelligenten Gerät Projekt Wiederaufbau, läuft das Testverfahren erfolgreich war.

19

Ich hatte das gleiche Problem in Visual Studio 2012, als ich ein älteres Projekt (ich denke, 2005) aktualisiert.

Der Verweis auf Microsoft.VisualStudio.QualityTools.UnitTestFramework muss entfernt werden, indem Sie im Projektmappen-Explorer mit der rechten Maustaste darauf klicken und ihn dann entfernen.

  1. New Referenz
  2. Extensions finden Microsoft.VisualStudio.QualityTools.UnitTestFramework, gibt es wahrscheinlich mehr
  3. Maus über den Weg anzuzeigen, wählen Sie das ein:

    Um die richtigen hinzufügen in ../IDE/PublicAssemblies

  4. reinigen
  5. Rebuild
  6. Rerun testet
+1

Das hat auch im VS 2010 gut funktioniert. Der Pfad in Schritt 3, wenn Sie nicht vertraut sind, ist Programmdateien/Visual Studio (Ihre Version, meins war 10)/Common7/IDE/PublicAssemblies. –

+0

Die obige Antwort funktionierte für mich. Falls Sie immer noch kämpfen, versuchen Sie: dbl-click SmartDeviceTestRun.testrunConfig (erstellt, wenn das Unit-Test-Projekt erstellt wurde) -> Hosts -> wählen Sie Ihre Plattform und Ihr Gerät aus. Außerdem: r-klicken Sie auf Testprojekt -> Eigenschaften -> Geräte -> wählen Sie Ihr Zielgerät aus (Testprojekt-Zielgerät sollte dem Zielgerät des tatsächlichen Projekts entsprechen). – robor78

+0

Ich habe das gleiche Problem, und mein UTFramework verweist auf C: \ Programme (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ ReferenceAssemblies \ v2.0 \ Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll für VS 2012 – Random