2010-07-29 20 views
12

Mam jedną bibliotekę DLL .NET 4, dla której mam problem z generowaniem testów jednostkowych. Używam standardu VS 2010. Każdy inny projekt w rozwiązaniu będzie generował zespoły testów jednostkowych dla klas. W przypadku innych złożeń mogę przejść do istniejącego kodu, kliknąć prawym przyciskiem nazwę klasy i wybrać "Utwórz testy jednostek". Dostaję okno wyboru, które następuje po prostu dobrze.Błąd VS 2010 Generowanie testów jednostek

Jeden zestaw, którego naprawdę potrzebuję, aby uzyskać pokrycie, nie wygeneruje odcinków testowych przy użyciu tej samej metodologii, o której mowa powyżej. Chodzę do klasy w projekcie/zespole, kliknij prawym przyciskiem, wybierz „Generowanie Tests Unit”, a ja spotkałem się z powodu następującego błędu:

Unit Test Generation Error: The follow error was encountered while reading module 'xx.Core': Could not resolve type reference: [System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxx]System.Web.Routing.RouteValueDictionary

O ile mi wiadomo, nie ma odniesienia bezpośrednie w projekcie do wersji 2.0 systemu System.Web podanej w komunikacie o błędzie. Wyszukiwanie w katalogu zawierającym pliki projektu i .CS za pomocą narzędzia o nazwie grepWIN, aby sprawdzić, czy tekst tego odwołania istnieje w dowolnych plikach, daje zerowe wyniki. Czy jest możliwe nawet odwołanie się do wersji 2.0 i 4.0 pliku dll system.web w tym samym czasie, a jeśli tak, dlaczego miałbyś to zrobić?

Jakieś pomysły, jak pozbyć się tego komunikatu o błędzie, abym mógł poprawnie zablokować niektóre testy jednostkowe?

+1

Mam takie samo doświadczenie, ale niestety nie ma odpowiedzi :-( –

Odpowiedz

0

Czy używasz NUNIT do testowania urządzenia? Jeśli tak, domyślnie Nunit wskazuje na .Net 2.0. Musisz wprowadzić odpowiednie zmiany w pliku nunit.exe.config.

Proszę, w Eksploratorze Windows, proszę przejść do C: \ WINDOWS \ Microsoft.NET \ Framework. Tam zobaczysz kilka folderów z takimi nazwami: v1.0.xxxxx, v1.1.xxxxx, ..., v4.0.xxxxx. Zapisz dokładną nazwę folderu v4.0.xxxxx.

Za pomocą edytora tekstu otwórz plik nunit.exe.config, który znajduje się w tym folderze: C: \ Program Files \ NUnit 2.5.2 \ bin \ net-2.0.

obszarze Dodaj:

<startup> <requiredRuntime version="v4.0.xxxxx" /> </startup> 

[zastąpić xxxxx przez poprawnych liczb, które zapisałem]

i pod dodatku:

<loadFromRemoteSources enabled="true" /> 

Powyższa zmiana pracował dla mnie. Mam nadzieję, że dla innych osób, które stoją w obliczu tego problemu.

+2

OP używa możliwości generowania testów .. VS2010 powinien tworzyć kody dla testów jednostkowych, wraz z plikiem, klasą i wszystkimi innymi instalacjami wodnymi. klasa, dzięki czemu testy jednostkowe mogą być realizowane za pomocą NUnit Framework. – GregC

1

Miałem ten sam problem z ObservableCollection.

Moje "rozwiązanie" polegało na uaktualnieniu wszystkich projektów referencyjnych i ich projektów referencyjnych do .NET 4.0. Wtedy to zadziałało ... Jednak wydaje się to trochę dziwne i mogłem zrobić coś innego, co spowodowało zniknięcie problemu.

1

Niedawno miałem podobny problem z jednym z moich projektów. Problem polegał na tym, że po zbudowaniu mojej biblioteki zmieniłem nazwę pliku DLL. Mój projekt odwołujący się do biblioteki dll nadal działał dobrze, jednak otrzymałem podobny błąd podczas generowania testów jednostkowych, dopóki nie zmieniłem nazwy biblioteki DLL z powrotem na oryginalną nazwę, gdy została ona zbudowana.

Powiązane problemy