ASP.NET WebApi 서비스에 대한 테스트를 작성하고 자체 호스팅 서비스 및 라이브 웹 호스팅 서비스에 대해 실행하고 싶습니다. 테스트 픽스처로이 작업을 수행 할 수 있다고 상상하지만, 어떻게 설정해야할지 모르겠습니다. 누구든지 구성 가능한 테스트 픽스처를 사용하여 Xunit에 매개 변수를 전달하여 자체 호스팅 된 조명기 또는 웹 호스팅 된 조명기를 선택할 수있는 예를 알고 있습니까?자체 호스트 및 프로덕션 webapi 서비스 모두에서 XUnit 테스트를 실행하는 방법은 무엇입니까?
1
A
답변
0
컨트롤러 테스트를 위해 인 메모리 서버를 사용하는 것이 좋으므로 단위 테스트에서 자체 호스트를 만들 필요가 없습니다. 이 최신 xUnit의 2.0 베타와 함께 작동 방법은 다음과
http://blogs.msdn.com/b/youssefm/archive/2013/01/28/writing-tests-for-an-asp-net-webapi-service.aspx
1
이다.
public class SelfHostFixture : IDisposable {
public static string HostBaseAddress { get; private set; }
HttpSelfHostServer server;
HttpSelfHostConfiguration config;
static SelfHostFixture() {
HostBaseAddress = ConfigurationManager.AppSettings["HostBaseAddress"]; // HttpClient in your tests will need to use same base address
if (!HostBaseAddress.EndsWith("/"))
HostBaseAddress += "/";
}
public SelfHostFixture() {
if (/*your condition to check if running against live*/) {
config = new HttpSelfHostConfiguration(HostBaseAddress);
WebApiConfig.Register(config); // init your web api application
var server = new HttpSelfHostServer(config);
server.OpenAsync().Wait();
}
}
public void Dispose() {
if (server != null) {
server.CloseAsync().Wait();
server.Dispose();
server = null;
config.Dispose();
config = null;
}
}
}
가 그런 다음 고정을 사용합니다 컬렉션을 정의
는 고정을 만듭니다. 컬렉션은 xUnit 2에서 테스트를 그룹화하는 새로운 개념입니다.[CollectionDefinition("SelfHostCollection")]
public class SelfHostCollection : ICollectionFixture<SelfHostFixture> {}
이는 구현이 없으므로 마커 역할을합니다. 지금, 당신의 호스트에 의존 마크 테스트는 수집 될 수 있습니다 :
[Collection("SelfHostCollection")]
public class MyController1Test {}
[Collection("SelfHostCollection")]
public class MyController4Test {}
서버가 한 번만 시작을 보장하여 MyController1Test
내에서 모든 테스트를 실행 치구와 MyController4Test
의 단일 인스턴스를 생성합니다 주자 컬렉션 당.
관련 문제
- 1. 활동과 서비스 모두에서 앱을 실행하는 방법은 무엇입니까?
- 2. 인증 오류가있는 HTTPS WebAPI 자체 호스트
- 3. OWIN 자체 호스트 서비스 권한
- 4. .NET 서비스 호스트 자체 서비스 호출
- 5. ASP.NET WebAPI 자체 호스팅 앱 및 crossdomain.xml
- 6. Nunit 테스트를 실행하는 방법은 무엇입니까?
- 7. 클리어 데이터베이스에서 테스트를 실행하는 방법은 무엇입니까?
- 8. 자체 종료 Self-hosted WebAPI
- 9. 동일한 컴퓨터에서 프로덕션 호스트 개발 및 액세스
- 10. 자체 호스트 WCF 서비스 + 클라이언트 인증서 인증
- 11. WebAPI 자체 호스트 503 오류 (HttpSelfHostConfiguration 설정 HttpSelfHostConfiguration)
- 12. 프로덕션 서버에서 sidekiq를 실행하는 방법은 무엇입니까?
- 13. Eclipse에서 cunit 테스트를 실행하는 방법은 무엇입니까?
- 14. xUnit 및 Watin 정리
- 15. 자체 문서화 WebAPI 2
- 16. ADAM을 사용하여 단원 테스트를 실행하는 방법은 무엇입니까?
- 17. android studio에서 JUnit 테스트를 실행하는 방법은 무엇입니까?
- 18. WebAPI 서비스 디자인
- 19. 로컬 호스트와 웹 호스트 모두에서 DOCUMENT_ROOT을 작동시키는 방법은 무엇입니까?
- 20. Jquery 생성자를 자체 함수에서 실행하는 방법은 무엇입니까?
- 21. ctest로 실패한 테스트를 다시 실행하는 방법은 무엇입니까?
- 22. visualstudio 2012에서 테스트를 실행하는 방법은 무엇입니까?
- 23. 하나의 컨트롤러에서 통합 테스트를 실행하는 방법은 무엇입니까?
- 24. REPL에서 모든 프로젝트 테스트를 실행하는 방법은 무엇입니까?
- 25. 프로그램 전에 테스트를 실행하는 방법은 무엇입니까?
- 26. 명령 줄에서 QUnit 테스트를 실행하는 방법은 무엇입니까?
- 27. 기계 엔디안에 따라 테스트를 실행하는 방법은 무엇입니까?
- 28. Xcode 4.2에서 cocos2d 테스트를 실행하는 방법은 무엇입니까?
- 29. Windows에서 PHPUnit 테스트를 실행하는 방법은 무엇입니까?
- 30. 다른 환경에서 rspec 테스트를 실행하는 방법은 무엇입니까?
메모리 부족 테스트를 수행 할 때 우리는 요청과 응답이 형식 자의 직렬화/직렬화 과정을 거쳐 어떤 문제를 잡을 수 있는지 확인해야합니다. 내 아주 오래된 게시물의 일부 정보는 여기에 있습니다. http://blogs.msdn.com/b/kiranchalla/archive/2012/05/06/in-memory-client-amp-host-and-integration-testing-of-your-web-api-service.aspx. ..이 고려, 자기 호스트 테스트를하는 것이 더 나은 옵션이라고 생각 ... –