我尝试在此处为我的存储库设置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 ;.你是 缺少装配参考?
我该如何解决这个问题?
答案 0 :(得分:1)
根据this answer,似乎只有Visual Studio安装时才能使用引用的包Microsoft.VisualStudio.QualityTools.UnitTestFramework。在Travis'上运行测试时,这是不可能的。构建系统,运行Linux。
这个问题的一个简单解决方案是使用Nunit,这是一个也可以与.NET的Linux实现Mono一起使用的测试框架。 要使用它,只需实现一个涵盖测试功能的Shim类,从项目的参考中删除对Microsoft.VisualStudio.QualityTools.UnitTestFramework的原始引用,你就可以了。
在这里做什么:
使用NuGET包管理器在Visual Studio中安装以下包:
Nunit测试适配器
NUnit的
nunit.framework
要摆脱对Microsoft.VisualStudio.QualityTools.UnitTestFramework的依赖,请将this shim class添加到测试项目中。
删除了测试项目中对Microsoft.VisualStudio.QualityTools.UnitTestFramework的引用。
运行测试
提交您的项目并查看它在Travis CI中运行