2016-10-01 56 views
1

我试图建立特拉维斯CI测试为我的仓库在这里:https://github.com/douglasg14b/CSVSerializer特拉维斯单元测试失败:参考“Microsoft.VisualStudio.QualityTools.UnitTestFramework”没有解决

测试本地通,但与特拉维斯CI我得到以下警告和错误:

/usr/lib/mono/xbuild/14.0/bin/Microsoft.Common.targets: warning : Reference 'Microsoft.VisualStudio.QualityTools.UnitTestFramework' not resolved

CSVSerializerTests.cs(1,17): error CS0234: The type or namespace name VisualStudio' does not exist in the namespace Microsoft'. Are you missing an assembly reference?

我该如何解决这个问题?

回答

1

根据this answer,似乎引用的软件包Microsoft.VisualStudio.QualityTools.UnitTestFramework仅适用于安装了Visual Studio。当在运行Linux的Travis构建系统上运行测试时,这是不可能的。

一个简单的解决这个问题是使用NUnit,测试框架,也可用于单声道,Linux实现.NET的。 要使用它,只需实现一个Shim类,它涵盖了测试的功能,从项目的引用中删除对Microsoft.VisualStudio.QualityTools.UnitTestFramework的原始引用,并且您可以轻松完成。

这里是做什么:

  1. 安装Visual Studio中的以下软件包使用NuGet包管理器:

    • NUnit测试适配器

    • NUnit的

    • NUnit的。框架

  2. 要摆脱依赖于Microsoft.VisualStudio.QualityTools.UnitTestFramework的添加this shim class到您的测试项目。

  3. 删除了参考Microsoft.VisualStudio.QualityTools.UnitTestFramework在您的测试项目。

  4. 运行测试

  5. 提交您的项目,看到它在特拉维斯CI

运行