在某些.NET程序集上运行OpenCover.console时遇到一些问题。
我们看到只有在OpenCover下运行时,某些MSTEST测试才会失败。
这是怎么回事,我们有一些正在读取和写入LocalDB数据库的测试。是的,这些比单元测试更恰当地称为集成测试,但是它们是我们需要测试的测试功能。
有问题的测试首先要清除其使用的表,填充种子数据,运行一些应将记录插入数据库的代码,然后读取数据库以确保记录存在。
我们看到的是,除了没有看到我们期望的所有记录之外,所有内容都可以正常运行。
我们假设的是,从OpenCover运行时,测试可能会并行运行,并且一个测试的清除代码正在运行,而另一测试的测试代码却在运行。
那么,这些问题:
我们正在使用的命令:
<path>\OpenCover.Console.exe ^
-target:"<path>\vstestconsole.exe" ^
-targetargs:"/Logger.trx <listofassemblies>" ^
-excludebyattribute:*.TestClass*;*.TestMethod*;*.ExcludeFromCoverage* ^
-output:TestResults\outputCoverage.xml ^
-filter:"<listoffilters" ^