2013-05-12 17 views
6

Mam prostą aplikację ASP.Net MVC 4 z 3 prostymi testami.Problem z pokryciem kodu w VS 2012

Każda z tych testy zakończą się pomyślnie do końca, jednak okno Code Coverage daje mi następujący błąd:

Empty results generated: No binaries were instrumented. Make sure the tests ran, required binaries were loaded, had matching symbol files, and were not excluded through custom settings. For more information see http://go.microsoft.com/fwlink/?LinkID=253731

Zrobiłem rozeznanie, ale nic nie rozwiązało mojego problemu do tej pory.

  • Wiem, że testy zakończą
  • mam .pdb pliki w tym samym miejscu jak mój .dll
  • ja nie optimsing kodem
  • nie mogę znaleźć żadnych .testsettings złożyć
  • I Uruchomiłem też VS 2012 Ultimate jako Administrator, ale bez powodzenia.

Jeśli znajdę plik .coverage, wszystko to ma w nim jest:

PCHÿ 

Nie Wyniki plików XML lub komunikat o błędzie spodziewam.

+0

miałem ten problem, w moim przypadku został rozwiązany, gdy uruchomiłem Visual Studio jako Administrator – lmcarreiro

Odpowiedz

5

Zdaję sobie sprawę, że ma ponad rok. Mimo to właśnie napotkałem dokładnie ten sam problem, nawet do tekstu "PCHÿ" w pliku .coverage i nie znalazłem żadnego rozwiązania od teraz. Ale na pewno ktoś inny miał problem, więc na wszelki wypadek, oto proste rozwiązanie:

Po sprawdzeniu tego MSDN link i po jego poradę nadal miałem ten sam problem. Ostatecznie zamknąłem VS, przeszedłem do głównego katalogu rozwiązań i usunął plik .suo. Ma ukryty zestaw atrybutów, więc możesz potrzebować ustawić Eksploratora, aby pokazać ukryte pliki.

Uruchom ponownie VS i przeprowadź ponownie testy zasięgu kodu. Wszystko w porządku.

+0

Hi Shunty.Ten problem nadal istnieje. Znalazłem gdzie indziej wzmiankę o usunięciu pliku .suo i ponownym uruchomieniu VS 2012, ale wciąż nie ma szczęścia. Usunąłem też cały folder TestResults i spróbowałem ponownie, bez powodzenia. – brettc4

+0

Nie miałem problemu, ponieważ nie mogę dać o wiele więcej pomocy. Być może jednak, jeśli Twój kod jest pod kontrolą źródła, możesz spróbować go sprawdzić w nowej lokalizacji i zbudować/przetestować i sprawdzić, co się stanie. Jestem pewien, że musi to mieć coś wspólnego z jednym z plików przejściowych/lokalnych, którymi zarządza VS, i które nie powinny wchodzić w kontrolę nad źródłami, aby mogło działać. – shunty

4

Jeśli nie możesz sprawić, aby zasięg kodu działał, nawet po usunięciu pliku * .suo, sprawdź, czy Twój Event Viewer nie zawiera błędów. W moim przypadku, po każdym biegu miałem następujący błąd:

„tracelog Profiler nie powiodło się w inicjalizacji z powodu braku metod pomiarowych, proces vstest.executionengine.x86.exe”

Znalazłem odpowiedź here.

W przypadku, gdy związek nie jest już dostępny, jestem wklejając treść tutaj:

If you find yourself with a an empty .coverage file and see errors similar to the below in your event logs you most probably have a corrupt install

(info) .NET Runtime version 4.0.30319.17929 - The profiler has requested that the CLR instance not load the profiler into this process. Profiler CLSID: '{b19f184a-cc62-4137-9a6f-af0f91730165}'. Process ID (decimal): 12624. Message ID: [0x2516].

(Error) TraceLog Profiler failed in initialization due to a lack of instrumentation methods, process vstest.executionengine.x86.exe

Check

a) Environment variable VS110COMNTOOLS is set to \common7\tools

b) Regkey HKLM\SOFTWARE\Microsoft\VisualStudio\11.0\InstallDir is set to your \Common7\IDE\

c) covrun32.dll and covrun64.dll exist in "\Team Tools\Dynamic Code Coverage"

Powodzenia

Nadav

+0

Nie mam "covrun64.dll" w moim komputerze, a zasięg kodu działa dobrze. To nie jest problem. –

+0

Dzięki za pomoc! W moim przypadku zmienna środowiskowa została ustawiona niepoprawnie. Nie było komunikatów o błędach, po prostu brak zasięgu pokrycia kodu. – Pegieo

+0

cieszę się, że mogłem pomóc ;-) – nadavy

Powiązane problemy