TLDR;我有一个混合的解决方案:我实际开发的库的NetStandard 2.0和测试的.Net Framework 4.6.2(或者dotnetcore 2.0)。如何配置travis.yml来构建库和测试项目。
我实际上是在为客户提供休息api。我决定使用.NET Standard 2.0作为项目类型。由于它是基于REST的api,我决定使用Newtonsoft.Json来反序列化和序列化内容。
出现问题:nuget包Newtonsoft.Json 10.0.3现在不支持NetStandard 2.0。但我发现提交ab3315f确实如此。所以我克隆了回购并自己构建了netstandard库作为工作区,直到新版本在NuGet中可用。
我在此帖子之后将项目添加到CI系统travis:https://rimdev.io/building-net-core-on-travis-ci/
现在我使用Nunit为我的解决方案添加了一个测试项目,以便为我的库运行单元测试和集成测试。不,我面临两个问题,我需要解决一个问题:
问题1:当我的测试项目针对.NET Framework时,我能够毫无问题地执行所有单元测试,但现在travis基于我的travis.yml抱怨没有安装单声道来正确构建完整的解决方案。 我的问题是:如何更改我的.travis.yml以在解决方案中构建两种项目类型。
问题2:当我的测试项目以dotnetcore为目标时,我的本地构建工作正常,但是当我尝试在本地执行测试时,我收到运行时错误:
System.IO.FileNotFoundException : Could not load file or assembly 'Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null'.
这就是为什么我现在没有测试travis构建的原因,因为如果这是解决方案,我想先让它在本地运行。我不知道为什么它找不到依赖。
问题1或问题2的任何建议?
答案 0 :(得分:0)
我最终将Newtonsoft.Json 10.0.3的NuGet包添加到我的dotnetcore测试项目中,虽然它没有直接在那里使用。现在运行时错误显示了。所以我也可以在本地和远程进行测试,让travis CI构建我的项目。