【发布时间】:2017-10-19 07:40:05
【问题描述】:
TLDR;我有一个混合解决方案:NetStandard 2.0 用于我实际开发的库,.Net Framework 4.6.2(或 dotnetcore 2.0)用于测试。如何配置 travis.yml 来构建库和测试项目。
我实际上正在为一个客户端开发一个 rest api。我决定使用 .NET Standard 2.0 作为项目类型。由于它是一个基于 REST 的 api,我决定使用 Newtonsoft.Json 来反序列化和序列化内容。
出现问题:nuget 包 Newtonsoft.Json 10.0.3 目前不支持 NetStandard 2.0。但我发现提交 ab3315f 确实如此。因此,我克隆了 repo 并自己构建了 netstandard 库作为解决方法,直到新版本在 NuGet 中可用。
我在这篇文章之后将项目添加到 CI 系统 travis:https://rimdev.io/building-net-core-on-travis-ci/
现在我使用 Nunit 在我的解决方案中添加了一个测试项目,以便为我的库运行单元测试和集成测试。不,我面临 2 个问题,我需要解决一个:
问题 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 build 的原因,因为如果这是解决方案,我想让它首先在本地运行。不知道为什么找不到依赖。
对问题 1 或问题 2 有什么建议吗?
【问题讨论】:
标签: build nunit travis-ci .net-standard