【问题标题】:Having troubles building my solution with MSBuild on Bamboo在 Bamboo 上使用 MSBuild 构建解决方案时遇到问题
【发布时间】:2018-07-26 13:04:28
【问题描述】:

我有一个在 Visual Studio 2015 专业版 Framework - 4.6.1 中开发的 windows 应用程序。我已经使用 MStest 为这个 windows 服务编写了单元测试用例。如果我在我的机器上本地构建此应用程序,则构建成功(构建由 Visual Studio -> Build-> Build Solution 和 MSBuild 完成)。

现在我有一个没有安装 Visual Studio 2015 的虚拟机,但上面安装了 VS2017。现在我正在尝试通过 Bamboo 通过 MSBuild 构建我的应用程序。它给出了以下错误。

UnitTest1.cs(2,17): error CS0234: The type or namespace 
name 'VisualStudio' does not exist in the namespace 'Microsoft' (are you
 missing an assembly reference?) 
[C:\Users\Administrator\bamboo-home\xml-data\build-dir\GUI-DEV-JOB1\UnitTestGUI\UnitTestGUI.csproj]

UnitTest1.cs(9,10): error CS0246: The type or namespace 
name 'TestMethod' could not be found (are you missing a using directive 
or an assembly reference?) 
[C:\Users\Administrator\bamboo-home\xml-data\build-dir\GUI-DEV-JOB1\UnitTestGUI\UnitTestGUI.csproj]

UnitTest1.cs(9,10): error CS0246: The type or namespace 
name 'TestMethodAttribute' could not be found (are you missing a using 
directive or an assembly reference?) 
[C:\Users\Administrator\bamboo-home\xml-data\build-dir\GUI-DEV-JOB1\UnitTestGUI\UnitTestGUI.csproj]

UnitTest1.cs(6,6): error CS0246: The type or namespace 
name 'TestClass' could not be found (are you missing a using directive 
or an assembly reference?) 
[C:\Users\Administrator\bamboo-home\xml-data\build-dir\GUI-DEV-JOB1\UnitTestGUI\UnitTestGUI.csproj]

UnitTest1.cs(6,6): error CS0246: The type or namespace 
name 'TestClassAttribute' could not be found (are you missing a using 
directive or an assembly reference?) 
[C:\Users\Administrator\bamboo-home\xml-data\build-dir\GUI-DEV-JOB1\UnitTestGUI\UnitTestGUI.csproj]

这些错误非常令人困惑,因为我引用了Microsoft.VisualStudio.QualityTools.UnitTestFramework,但仍然显示这些错误。

我觉得这些错误的原因如下(可能完全错误)。

  1. 我的构建环境中没有导致此问题的 Visual Studio 2015。或

  2. 当我在我的代码中查看此特定引用的属性时,其路径显示为“C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll”。但是在我构建代码的虚拟机中没有名称为Microsoft Visual Studio 14.0 的文件夹。我怎么得到这个。是通过安装 Visual Studio 2015 吗?

谁能帮我解决这个问题,因为我被困在这里了。

【问题讨论】:

标签: c# visual-studio-2015 msbuild bamboo vs-unit-testing-framework


【解决方案1】:

我通过在测试项目中将引用从Microsoft.VisualStudio.QualityTools.UnitTestFramework 更改为MSTest.TestFramework 解决了这个问题。

【讨论】:

    【解决方案2】:

    在 Bamboo 上使用 MSBuild 构建解决方案时遇到问题

    就像您发现单元测试项目仍然使用 Visual Studio 2015 中的旧特定引用一样。要解决此问题,您可以使用 Visual Studio 2017 打开单元测试项目并删除旧引用 Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll ,然后从 Visual Studio 2017 安装文件夹中添加:

    C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
    

    此外,MsTest 已作为新的 NuGet 包解决方案发布,不再与 Visual Studio 版本紧密耦合。默认情况下,新项目在 Visual Studio 2017 中使用 MsTest 2.0。它使用Microsoft.VisualStudio.TestPlatform.TestFramework 而不是Microsoft.VisualStudio.QualityTools.UnitTestFramework。所以你也可以尝试在 VS2017 中创建一个新的 UnitTest 项目。也许更改旧测试项目的程序集引用也可以。有了新的参考 VS2017 确实发现了那些单元测试。

    更多详情见:Announcing MsTest 2.0

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-16
      • 2011-05-08
      • 1970-01-01
      • 1970-01-01
      • 2018-10-01
      • 1970-01-01
      • 2015-11-15
      相关资源
      最近更新 更多