2017-10-19 13 views
0

TLDR; 나는 실제로 개발중인 라이브러리의 NetStandard 2.0과 테스트를위한 .Net Framework 4.6.2 (또는 양자 택일로 dotnetcore 2.0)라는 혼합 된 솔루션을 가지고있다. travis.yml을 설정하여 라이브러리와 테스트 프로젝트를 빌드하는 방법.netstandard20 및 framework462에 대한 travis에서 dotnet 솔루션 빌드

저는 실제로 나머지 API를 위해 클라이언트에서 작업하고 있습니다. .NET 표준 2.0을 프로젝트 유형으로 사용하기로 결정했습니다. REST 기반 API이기 때문에 Newtonsoft.Json을 사용하여 내용을 비 직렬화하고 직렬화하기로 결정했습니다.

문제가 발생했습니다. Nuget 패키지 Newtonsoft.Json 10.0.3은 현재 NetStandard 2.0을 지원하지 않습니다. 그러나 나는 ab3315f 커밋을 발견했습니다. 그래서 repo를 복제하고 NuGet에서 새 버전을 사용할 수있을 때까지 워크래프트로 netstandard 라이브러리를 직접 만들었습니다.

나는이 게시물에 다음과 같은 CI 시스템 트래비스에 프로젝트를 추가 :

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'. 

이 솔루션을 사용한다면 먼저 로컬로 실행하고 싶습니다. 왜 의존성을 찾지 못하는지 모르겠다.

문제점 1 또는 문제점 2에 대한 제안 사항이 있습니까?

답변

0

Newtonsoft.Json 10.0.3의 NuGet 패키지가 내 dotnetcore 테스트 프로젝트에 추가되었지만 직접 사용되지는 않았습니다. 이제 런타임 오류가 발생했습니다. 그래서 저는 로컬과 원격에서도 테스트 할 수 있었고 travis CI가 프로젝트를 만들도록했습니다.

+0

패키지 참조 또는'packages.config'를 사용합니까? .NET Standard를 사용하려면 이전 버전과 VS 2017 15.4 이상의 모든 Microsoft 최신 도구를 사용해야합니다. xUnit.net을 사용하지만 여기에 예제가 있습니다. https://blog.lextudio.com/tips-for-net-core-unit-testing-92a8d123a17a. –