Wymuś NCover 1.5.8 aby używał V4 framework jak testdriven.net tak?

Chcę uruchomić coverage z linii poleceń, ale nie mogę uzyskać NCover 1.5.8, aby ustawić kod. Musi być to możliwe, ponieważ gdy przeprowadzam testy pokrycia z TestDriven.net to działa. różnica wydaje się być taka, że TD.NET jest w stanie uzyskać NCover do użycia framework 4.0 (dostajesz to w dzienniku kiedy działa : MESSAGE: v4.0.30319) ale z linii poleceń nie mogę tego zrobić (dostaję to w dzienniku : MESSAGE: v2.0.50727)

Więc jak Mogę sprawić, aby NCover grał ładnie z nunit z linii poleceń, tak jak to robi z TD.NET?

Author: Sam Holder, 2011-02-07

2 answers

Po dalszych poszukiwaniach znalazłem to:

Jeśli znalazłeś ten wątek, ponieważ próbujesz dostać NCover 1.5.8 do praca z. Net 4 następnie następujące należy naprawić ten błąd:

Otwórz wiersz polecenia i wpisz następny zestaw COMPLUS_ProfAPI_ProfilerCompatibilitysetting=EnableV2Profiler

To nakazuje Ładowanie. NET 4 CLR Profiler. NET Framework 2.0.

Aby uzyskać więcej informacji zobacz: http://msdn.microsoft.com/en-us/library/dd778910.aspx

Na końcu wątku tutaj

Który wydaje się rozwiązywać mój problem

EDIT :

To nie rozwiązuje mojego problemu. Teraz tylko pozwala na pokrycie.XML, który ma być wygenerowany, ale zawiera tylko zespoły frameworku v2.0, więc tylko zespoły.NET 2.0 są profilowane....

Grrr. z powrotem do deski kreślarskiej...

Edytuj 2

Alleluja! Odkryłem to przez proces losowego googlowania i zmiany. w każdym razie, dzięki pewnym wskazówkom znalezionym tutaj {[15] } byłem w stanie dowiedzieć się, że to, co musiałem zrobić, to zmienić exe.konfiguracja aplikacji uruchamiającej kod (nunit.konsola-x86.exe w tym przypadku) plik, aby nie tylko wymusić załadowanie określonej wersji. NET framework, ale także umożliwić użycie starej polityki aktywacji. Krótko mówiąc, udało mi się to rozwiązać. autor:
  • dodanie do nunit-console-x86.exe.konfiguracja następującej sekcji:
<configuration>  
    <startup useLegacyV2RuntimeActivationPolicy="true">  
        <supportedRuntime version="v4.0.30319"/>  
    </startup>  
</configuration>
  • Ustawienie tych w środowisku, z którego uruchamiane jest polecenie:

    set ProfAPI_ProfilerCompatibilitySetting=EnableV2Profiler
    set COMPLUS_ProfAPI_ProfilerCompatibilitySetting=EnableV2Profiler
    (Nie wiem, czy oba są konieczne, Ale To właśnie zrobiłem)

Dodałem również podobne ustawienie do NCover.Konsola.Exe.config, ale okazuje się, że jest to niepotrzebne.

EDIT 3

To jest wiersz poleceń, którym jestem korzystanie (zauważ, że skopiowałem wszystkie ncover i nunit oraz moje zespoły testowe do jednego katalogu, aby uprościć sprawy)

NCover.Console.exe nunit-console-x86.exe /framework=4.0.30319 Your.Test.Assembly.dll //x coverage.xml //reg

 27
Author: Sam Holder,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-18 04:57:02

Może źle zrozumiałem twój problem, ale jeśli próbujesz wymusić uruchomienie NCover w środowisku uruchomieniowym. NET 4.0, możesz spróbować umieścić supportedRuntime element w jego pliku konfiguracyjnym.

<configuration>
  <startup>
    <supportedRuntime version="v4.0.30319"></supportedRuntime>
  </startup>
</configuration>

Wymusi to na pliku wykonywalnym. NET 4.0 bez konieczności jego przebudowy.

 4
Author: João Angelo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-02-07 13:17:59