0

私のコードがvb.netであることを除いて、ここからコードカバレッジの結果を収集するために、例からコードを複製しました

これが私のコードです

Imports Microsoft.VisualStudio.Coverage.Analysis


Module Module1

    Sub Main()
        Using info As CoverageInfo = CoverageInfo.CreateFromFile("C:MyFile\data.coverage")

            Dim lines As New List(Of BlockLineRange)()

            For Each [module] As ICoverageModule In info.Modules

                Dim coverageBuffer As Byte() = [module].GetCoverageBuffer(Nothing)
                Using reader As ISymbolReader = [module].Symbols.CreateReader()

                    Dim methodId As UInteger = 0
                    Dim MethodName As String = ""
                    Dim undecoratedMethodName As String = ""
                    Dim ClassName As String = ""
                    Dim NameSpaceName As String = ""

                    lines.Clear()

                    While reader.GetNextMethod(methodId, MethodName, undecoratedMethodName, ClassName, NameSpaceName, lines)

                        Dim stats As CoverageStatistics = CoverageInfo.GetMethodStatistics(coverageBuffer, lines)
                        Console.WriteLine("Method {0}{1}{2}{3}{4} has:" & NameSpaceName & ClassName & undecoratedMethodName)

                        Console.WriteLine(" blocks covered are {0}", stats.BlocksCovered)
                    End While
                End Using
            Next

        End Using
    End Sub

End Module

これを行で実行するとCreateFromFileImageNotFoundException

Image File "C:\SomeAddress\MyServer\UnitTest.dll" could not be found 

指示に従って、必要なdllをコピーしたプロジェクトに追加し、他の2つを参照として追加しました。

4

1 に答える 1

0

そして、また別のタンブルウィードの瞬間....

基本的に問題は、カバレッジ ファイルを含むフォルダーには、そのオブジェクトを作成するためにテストが実行されたアセンブリ内で使用されるすべての dll も含まれている必要があることでした。

この問題に遭遇したことがある場合は、これが役立つことを願っています:)

于 2013-03-04T15:09:58.313 に答える