所以我有一些代碼,可以讀取方法出.coverage文件...編程雷丁VS .coveragexml文件在C#
using (CoverageInfo info = CoverageInfo.CreateFromFile(this.myCoverageFile))
{
CoverageDS ds = info.BuildDataSet();
foreach (ICoverageModule coverageModule in info.Modules)
{
CodeModule currentModule = new CodeModule(coverageModule.Name);
byte[] coverageBuffer = coverageModule.GetCoverageBuffer(null);
using (ISymbolReader reader = coverageModule.Symbols.CreateReader())
{
Method currentMethod;
while (reader.GetNextMethod(out currentMethod, coverageBuffer))
{
if (currentMethod != null)
{
currentModule.Methods.Add(currentMethod);
}
}
}
returnModules.Add(currentModule);
}
}
...但我希望能夠讀取.coverage也被導出到xml的文件。原因是.coverage文件要求源代碼文件處於測量代碼覆蓋率時的確切位置,這對我不起作用。
當我嘗試使用CreateFromFile(string)加載coveragexml文件時,出現以下異常。
Microsoft.VisualStudio.Coverage.Analysis.InvalidCoverageFileException 了未處理消息=覆蓋文件 「unittestcoverage.coveragexml」 是 無效或損壞。
在Visual Studio中打開coveragexml文件就好了,所以我不認爲這個文件的格式有問題。
我知道CoverageDS可以導入XML文件,但API小於直觀,我能找到它的使用的唯一的例子是...
using(CoverageInfo info = CoverageInfo.CreateFromFile(fileString))
{
CoverageDS data = info.BuildDataSet();
data.ExportXml(xmlFile);
}
...這告訴我一無所知如何真正從該文件中讀取覆蓋率數據。
有人知道如何從.coveragexml文件處理代碼覆蓋率數據嗎?
對於未來的讀者:下面的URL有一個「線索」。 「要將二進制VSTest.Console輸出轉換爲Microsoft CoverageDS XML格式,您可以使用以下V0.14發行說明中引用的預建應用程序之一,或者您可以構建以下轉換器應用程序:」I ~~ think ~~ 「CoverageInfo.CreateFromFile」用於從***二進制文件***(來自VSTest.Console)加載,而不是trx文件(只是xml)。請參閱:https://wiki.jenkins-ci.org/display/JENKINS/MSTest+Plugin什麼讓我是我不知道(德哦)trx文件只是xml。 :( – granadaCoder 2016-04-29 14:12:28