Travis Unit测试失败:参考' Microsoft.VisualStudio.QualityTools.UnitTestFramework'没有解决

时间:2016-10-01 04:43:17

标签: unit-testing travis-ci

我尝试在此处为我的存储库设置Travis CI测试:https://github.com/douglasg14b/CSVSerializer

测试在本地传递,但是使用Travis CI我收到以下警告和错误:

  

/usr/lib/mono/xbuild/14.0/bin/Microsoft.Common.targets:警告:   参考' Microsoft.VisualStudio.QualityTools.UnitTestFramework'不   解决

     

CSVSerializerTests.cs(1,17):错误CS0234:类型或命名空间名称   VisualStudio' does not exist in the namespace微软&#39 ;.你是   缺少装配参考?

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

根据this answer,似乎只有Visual Studio安装时才能使用引用的包Microsoft.VisualStudio.QualityTools.UnitTestFramework。在Travis'上运行测试时,这是不可能的。构建系统,运行Linux。

这个问题的一个简单解决方案是使用Nunit,这是一个也可以与.NET的Linux实现Mono一起使用的测试框架。 要使用它,只需实现一个涵盖测试功能的Shim类,从项目的参考中删除对Microsoft.VisualStudio.QualityTools.UnitTestFramework的原始引用,你就可以了。

在这里做什么:

  1. 使用NuGET包管理器在Visual Studio中安装以下包:

    • Nunit测试适配器

    • NUnit的

    • nunit.framework

  2. 要摆脱对Microsoft.VisualStudio.QualityTools.UnitTestFramework的依赖,请将this shim class添加到测试项目中。

  3. 删除了测试项目中对Microsoft.VisualStudio.QualityTools.UnitTestFramework的引用。

  4. 运行测试

  5. 提交您的项目并查看它在Travis CI中运行