2016-10-01 63 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

運行