2009-06-17 13 views
15

Mam Visual Studio 2008 testów jednostkowych, a ja otrzymuję następujący błąd wykonania:Nie można ustawić właściwość TestContext

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' 

Czytałem, że VS 2008 nie poprawnie zaktualizować odniesienia do UnitTestFramework podczas konwersji Projekty 2005. Mój test jednostkowy został utworzony w 2008 roku, ale dziedziczy po klasie bazowej wbudowanej w VS 2005. Czy to stąd powstaje mój problem? Czy moja klasa podstawowa musi zostać przebudowana w 2008 roku? Wolałbym tego nie robić, ponieważ wpłynie to na inne projekty.

W innych testach jednostkowych pochodnych zbudowanych w 2005 r. Jedyne, co musieliśmy zrobić, to skomentować właściwość TestContext w teście z pochodnej jednostki. Próbowałem tego w jednostce testowej VS 2008 bez powodzenia. Próbowałem również "nowe" właściwości TestContext, który daje mi inny błąd środowiska wykonawczego.

Wszelkie pomysły?

+0

Po prostu próbowałem przekonwertować klasę bazową na VS 2008 i teraz wydaje się działać. Ale wolałbym tego nie robić, ponieważ spowoduje to przekształcenie innych projektów. Więc jeśli jest jakikolwiek sposób obejścia tego, byłoby wspaniale. – bsh152s

+0

Mam ten sam problem w klasie testowej, który zbudowałem świeżo w VS2008. – jcollum

Odpowiedz

0

Wpadłem na ten sam problem. Okazało się, że jeden z moich projektów odwoływał się do złożeń 8.0, a drugi odwoływał się do 9.0. Rozwiązanie zostało skompilowane, ale otrzymałem wyjątek środowiska wykonawczego.

1

Zamieszczam to tutaj w nadziei, że pomoże to jednostce testującej projekt inteligentnego urządzenia. Mam bardzo podobny błąd, gdy po raz pierwszy próbował uruchomić test jednostki na metodę w inteligentny projekt urządzenia byłem w pracy w 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' 

Googling błąd zwracane wyniki sugerowane było to spowodowane uaktualnienie projektu testowego z formatu Visual Studio 2005 do 2008 r. i że odniesienie do UnitTestFramework.dll wciąż było w starej wersji (8.0) i wymagało aktualizacji. Nie dotyczyło to mnie, ponieważ nie zmodernizowałem mojego projektu testowego z VS2005. Więc kontynuowałem poszukiwania.

Po godzinach poszukiwania innych przyczyn do błędu bez powodzenia, natknąłem się następujących odniesień w inteligentnego projektu urządzenia:

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

Visual Studio było uzyskanie tych odniesień z następującego folderu:

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

Jednak platformą docelową projektu urządzenia inteligentnego była Windows Mobile 6 Professional SDK. Nie zauważyłem tego wcześniej, ponieważ początkowo nie tworzyłem projektu inteligentnego urządzenia. Więc usunąłem odniesień do dwóch bibliotek DLL i ponownie dodane je z następującym folderze:

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

Po przebudowie projekt urządzenia inteligentne, bieganie metoda badania udało.

19

Miałem ten sam problem w Visual Studio 2012, kiedy uaktualniłem starszy projekt (myślę, że 2005).

Odwołanie do pliku Microsoft.VisualStudio.QualityTools.UnitTestFramework należy usunąć, klikając je prawym przyciskiem myszy w Eksploratorze rozwiązań, a następnie usuwając je.

Aby dodać prawo One:

  1. Dodaj nowy odnośnik
  2. Extensions, znaleźć Microsoft.VisualStudio.QualityTools.UnitTestFramework istnieje prawdopodobny kilka
  3. myszy nad wyświetlać ścieżkę, wybierz jedną w ../IDE/PublicAssemblies
  4. Czystych
  5. Rebuild
  6. Rerun testuje
+1

To również zadziałało dla mnie w VS 2010. Ścieżka w kroku 3, jeśli nie jesteś zaznajomiony, to Program Files/Visual Studio (twoja wersja, moja to 10)/Common7/IDE/PublicAssemblies. –

+0

Powyższa odpowiedź zadziałała. Jeśli nadal walczysz, spróbuj: dbl-click SmartDeviceTestRun.testrunConfig (utworzony po utworzeniu projektu testu jednostkowego) -> Hosty -> wybierz swoją platformę i urządzenie. Ponadto: projekt testowy r-click -> właściwości -> urządzenia -> wybierz urządzenie docelowe (docelowe urządzenie projektu testowego powinno być równe rzeczywistemu urządzeniu docelowemu projektu). – robor78

+0

Mam ten sam problem i mój kod UTFramework odwołuje się do C: \ Program Files (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ ReferenceAssemblies \ v2.0 \ Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll dla VS 2012 – Random

Powiązane problemy