【问题标题】:Expression to include by file name but exclude by same folder name按文件名包含但按相同文件夹名称排除的表达式
【发布时间】:2013-05-12 00:22:25
【问题描述】:

我正在尝试弄清楚如何配置 VS Code Coverage 运行设置以仅包含目标库但不包含测试库和第 3 方库:

语法如下:

<Include>
    <ModulePath>.*\\MyProject\..*\.dll$</ModulePath>
</Include>
<Exclude>
    <ModulePath>.*\.Test.dll$</ModulePath>
</Exclude>

里面的字符串是完整的路径(样子),例如:

...\Projects\MyProject\trunk\MyProject.Data\bin\Debug\MyProject.Data.dll
...\Projects\MyProject\trunk\MyProject.Data\bin\Debug\MyProject.Data.Test.dll
...\Projects\MyProject\trunk\MyProject.Data\bin\Debug\Moq.dll

到目前为止,我的包含 RegEx 导致同时包含目标 dll 和 3rd 方 dll。

如何包含

...\Projects\MyProject\trunk\MyProject.Data\bin\Debug\MyProject.Data.dll
                             ^^^^^^^^^^^^^^           ^^^^^^^^^^^^^^

但排除

...\Projects\MyProject\trunk\MyProject.Data\bin\Debug\Moq.dll
                             ^^^^^^^^^^^^^^

?

【问题讨论】:

    标签: .net regex visual-studio-2012 mstest code-coverage


    【解决方案1】:

    VS Code Coverage 仅加载包含 .pdb 文件的程序集。因此,最简单的解决方案实际上应该是删除外部库的 .pdb 文件。无论如何,您不太可能在其中进行调试。

    【讨论】:

    • 但是第三个 pdb 文件将随 NuGet 包一起自动恢复(加载)。此外,如果 Include 丢失/为空,则不应加载第 3 方库。但实际上它们已加载。
    • 那么您应该明确排除您的依赖项,而不是明确包括只包含您想要涵盖的内容。 msdn.microsoft.com/en-us/library/jj159530.aspx
    • 我不想列出所有要排除的文件(让我们将此选项作为一种解决方法),但希望有一个表达式。
    • 我意识到这一点。我只是怀疑这是否可行。
    • 我的正则表达式不太好,花了一天时间试图弄清楚,然后决定问一下。如果这真的不可行,将放弃并使用您的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-17
    • 2016-02-05
    • 1970-01-01
    • 2016-06-12
    • 1970-01-01
    相关资源
    最近更新 更多