【问题标题】:MSTest does not discover unit test in assemblyMSTest 未在程序集中发现单元测试
【发布时间】:2017-12-13 11:08:48
【问题描述】:

我正在尝试与 TeamCity 建立持续集成,并坚持使用 Visual Studio 测试运行程序运行单元测试步骤。

正在加载 [02:42:07]C:\TeamCity\buildAgent\work\f7a05248f49c57a1\LodCore\UserPresentationTests\bin\Release\UserPresentationTests.dll...

[02:42:07][步骤 3/3] 开始执行...

[02:42:07][步骤 3/3] 没有要执行的测试。

当我从 Visual Studio 构建测试程序集时,所有测试都是可发现的。 我已将 UserPresentationTests.dll 从构建代理下载到我的计算机,并尝试使用我的本地 MSTest.exe 执行相同的命令,但由于同样的问题而失败。 我用 ILSpy 对其进行了反编译,发现与从 Visual Studio 构建的 dll 没有区别。 我在 MSBuild 上尝试了不同的构建配置,但它不起作用。

我的 TeamCity 版本:Professional 2017.2(内部版本 50574)

【问题讨论】:

    标签: c# msbuild continuous-integration teamcity mstest


    【解决方案1】:

    如果你使用MSTest v2,那么你应该使用VSTest而不是MSTest:

    【讨论】:

    • 我们怎么知道 VsTest 更新了?您链接到的文章很有趣,没有提到不是teamcity。您能否详细说明何时使用 vstest 以及何时使用 mstest?
    • 我不记得我在哪里读到它了,但基本上根据经验,您应该使用:对于 MSTest v1 => mstest.exe,对于 MSTest v2 => vstest.console.exe,对于.net 核心项目 => dotnet test。向mstest.exe 添加对 MSTest v2 的支持在此票证中被拒绝:github.com/Microsoft/vstest/issues/1213
    【解决方案2】:

    您能否检查一下环境之间在安装的库、权限等方面没有任何差异。

    我们有几个提示可以解决有效的本地构建和失败的 TeamCity 之间的差异,您可能需要按照这些步骤操作:https://confluence.jetbrains.com/display/TCD10/Common+Problems#CommonProblems-BuildfailsorbehavesdifferentlyinTeamCitybutnotlocally

    考虑到这一点,虽然第 3 步指向失败,但我还要检查第 2 步的构建日志,因为它可能由于某种原因跳过了一些构建部分。

    如果您还可以将您正在使用的 TeamCity 版本以及您在第 3 步中使用的跑步者类型添加到 OP 中,这将很有帮助。

    【讨论】:

    • 有一个问题:TeamCity 没有记录它为构建解决方案而执行的确切命令,因此我无法使用您提供的建议来识别错误。它运行自己的插件,并没有透露它在 MSBuild.exe 上使用的命令参数顺便说一句,我已经添加了您提到的信息,希望对您有所帮助
    【解决方案3】:

    除了构建配置之外,您还应该使用 Runner 类型 MSTest 创建新配置。 Example here

    【讨论】:

    • 我当然已经创建了这个构建步骤,并且来自 OP 的信息消息是这个步骤输出的一部分。
    • @Sovent,嗨。 1. 你能显示开始测试步骤的截图和配置的General Settings 2. Visual Studio 中有项目特殊图标(带烧瓶)吗?
    • 是的,项目在 Visual Studio 中有烧瓶图标。我已经在 op 中添加了测试配置截图,但是一般设置看起来,嗯,很一般,没有什么会影响构建过程
    猜你喜欢
    • 2011-07-26
    • 1970-01-01
    • 2012-03-14
    • 2018-06-06
    • 2017-08-29
    • 2011-12-25
    • 1970-01-01
    • 2010-12-04
    • 2017-08-09
    相关资源
    最近更新 更多