2016-08-12 3 views
3

.NET 코어 (net46 프레임 워크) 용 xunit 테스트를 만들고 응용 프로그램의 루트 경로를 가져 오는 동안 문제가 발생하여 찾을 수 있습니다. appsettings.json과 같은 것들. 내가 중 하나를 달성 할 수있는 방법ContentRootPath 얻기 또는 .NET 코어 용 xunit 컨텍스트에서 IHostingEnvironment 가져 오기

사람 설명시겠습니까 다음

  • 이 IHostingEnvironment

    의 인스턴스
  • xUnit의 테스트를 포함하는 .NET 프로젝트의 절대 경로를 검색 가져 오기, 그래서 직접 IHostingEnvironment를 구현할 수 있습니다.

매우 간단한 문제 일 수 있습니다. 좋은 해결책을 찾을 수없는 것 같습니다.

+0

테스트 프로젝트에는 자체 버전의 appsettings.json이 있어야합니다. Microsoft.AspNetCore.TestHost.TestServer를 사용하는 경우 기본 프로젝트에서 시작을 실행하지만 (예 :()) var _server = new TestServer (new WebHostBuilder(). UseStartup 테스트 프로젝트 –

답변

4

지금까지 XUnit 테스트에서 IHostingEnvironment를 주입하는 것이 가능하지 않았습니다.

이 적합하지 않습니다,하지만 당신은 같은 것을 할 수있는 (예 : SetBasePath) : 당신이 dotnet test을 수행하는 경우 프로젝트 디렉토리 자체 내에서 그것을 할 필요가 있기 때문에

var configuration = new ConfigurationBuilder() 
     .SetBasePath(Directory.GetCurrentDirectory()) 
     .AddJsonFile("remoteDeploymentConfig.json") 
     .AddUserSecrets() 
     .AddEnvironmentVariables() 
     .Build(); 

이 솔루션은 작동을 여기서 test은 해당 프로젝트의 xunit 패키지에 해당합니다.

+0

Thx, 이것을 시도해 보겠습니다. –

+0

Directory.GetCurrentDirectory()가 내 시나리오에 적합한 선택 인 것 같습니다. . –

+0

resharper testrunner를 사용하여 테스트 케이스를 실행할 때 .net core 2.0-preview1에서 작동하지 않는 것으로 보입니다. – Ph0en1x