2013-07-25 2 views
0

Не уверен, что я делаю неправильно, пытаясь использовать opencover. Я могу генерировать отчеты, запустив его для исполняемых консольных приложений, но всякий раз, когда я пытаюсь запустить его против фактического тестового кода, мне не повезло. У меня есть mstest и opencover, добавленные к системному пути.OpenCover all mstest fail when -register: пользователь настроен

Код библиотеки:

namespace SimpleLibrary 
{ 
    public class SimpleClass 
    { 

     public string HelloWorld() 
     { 
      return "HelloWorld!"; 
     } 
    } 
} 

Код проверки:

namespace SimpleTestProj 
{ 
    [TestClass()] 
    public class SimpleClassTest 
    { 
     [TestMethod()] 
     public void HelloWorldTest() 
     { 
      SimpleClass target = new SimpleClass(); 
      string expected = "HelloWorld!"; 
      string actual; 
      actual = target.HelloWorld(); 
      Assert.AreEqual(expected, actual); 
     } 
    } 
} 

С '-зарегистрироваться: пользователь' помечать тесты не по каким-либо причинам:

C:\nickolay\SimpleLibrary\SimpleTestProj\bin\Release>opencover.console.exe -output:"coverage.xml" -mergebyhash -target: 
"mstest.exe" -targetdir:"C:\nickolay\SimpleLibrary\SimpleTestProj\bin\Release" -targetargs:"/testcontainer:SimpleTestPro 
j.dll" -filter:+[*]* -register:user 
Executing: C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\mstest.exe 
Microsoft (R) Test Execution Command Line Tool Version 10.0.30319.1 
Copyright (c) Microsoft Corporation. All rights reserved. 

Loading SimpleTestProj.dll... 
Starting execution... 

Results    Top Level Tests 
-------    --------------- 
Failed    SimpleTestProj.SimpleClassTest.HelloWorldTest 
0/1 test(s) Passed, 1 Failed 

Summary 
------- 
Test Run Failed. 
    Failed 1 
    --------- 
    Total 1 
Results file: C:\nickolay\SimpleLibrary\SimpleTestProj\bin\Release\TestResults\labuser.SDKiosk_SAN-D5RHRCK1 2013-07-24 
21_04_25.trx 
Test Settings: Default Test Settings 
Committing... 
Visited Classes 0 of 2 (0) 
Visited Methods 0 of 4 (0) 
Visited Points 0 of 9 (0) 
Visited Branches 0 of 4 (0) 

==== Alternative Results (includes all methods including those without corresponding source) ==== 
Alternative Visited Classes 0 of 2 (0) 
Alternative Visited Methods 0 of 6 (0) 

Без «- register: user 'он говорит, что сборки не были задействованы:

C:\nickolay\SimpleLibrary\SimpleTestProj\bin\Release>opencover.console.exe -output:"coverage.xml" -mergebyhash -target: 
"mstest.exe" -targetdir:"C:\nickolay\SimpleLibrary\SimpleTestProj\bin\Release" -targetargs:"/testcontainer:SimpleTestPro 
j.dll" -filter:+[*]* 
Executing: C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\mstest.exe 
Microsoft (R) Test Execution Command Line Tool Version 10.0.30319.1 
Copyright (c) Microsoft Corporation. All rights reserved. 

Loading SimpleTestProj.dll... 
Starting execution... 

Results    Top Level Tests 
-------    --------------- 
Passed    SimpleTestProj.SimpleClassTest.HelloWorldTest 
1/1 test(s) Passed 

Summary 
------- 
Test Run Completed. 
    Passed 1 
    --------- 
    Total 1 
Results file: C:\nickolay\SimpleLibrary\SimpleTestProj\bin\Release\TestResults\labuser.SDKiosk_SAN-D5RHRCK1 2013-07-24 
21_08_43.trx 
Test Settings: Default Test Settings 
Committing... 
No results - no assemblies that matched the supplied filter were instrumented 
    this could be due to missing PDBs for the assemblies that match the filter 
    please review the output file and refer to the Usage guide (Usage.rtf) 

MSTest успешно работает из каталога:

C:\nickolay\SimpleLibrary\SimpleTestProj\bin\Release>mstest /testcontainer:SimpleTestProj.dll 
Microsoft (R) Test Execution Command Line Tool Version 10.0.30319.1 
Copyright (c) Microsoft Corporation. All rights reserved. 

Loading SimpleTestProj.dll... 
Starting execution... 

Results    Top Level Tests 
-------    --------------- 
Passed    SimpleTestProj.SimpleClassTest.HelloWorldTest 
1/1 test(s) Passed 

Summary 
------- 
Test Run Completed. 
    Passed 1 
    --------- 
    Total 1 
Results file: C:\nickolay\SimpleLibrary\SimpleTestProj\bin\Release\TestResults\labuser.SDKiosk_SAN-D5RHRCK1 2013-07-24 
21_11_00.trx 
Test Settings: Default Test Settings 

Моя голова устала от того, ударилась о стену здесь любая помощь. не

ответ

1

MSTest загружает сборки в два раза

1) один раз в том месте, где PDB проживает 2) во вторичном месте (без PDB)

OpenCover не анализирует сборки без PDB так, чтобы избежать этого MSTest поведение вы можете использовать переключатель MSTest /noisolation.

Альтернативно, если это не вариант, вы можете использовать OpenCover switch-mergebyhash, а OpenCover будет выполнять сборку, если она уже была загружена PDB.

Смежные вопросы