2009-07-24 2 views
2

asp.net 환경에서 실행할 필요가없는 클래스 (컨트롤러)를 테스트하려고합니다.VS2008에서 unittest를 실행하면 cassini가 왜 시작됩니까?

하지만 테스트를 실행하면 cassini가 시작됩니다.

어떻게 cassini로드를 피할 수 있습니까?

감사

+0

이미 해결 된 곳 : http://stackoverflow.com/questions/533412/what-causes-cassini-to-load-when-i-run-a-unit-test 솔루션 탐색기에서 프로젝트를 선택한 다음 속성 도크 (F4)를보고 "항상 디버깅 시작"을 "거짓"으로 변경하십시오. –

답변

0

asp.net 환경을 필요로 않습니다 컨트롤러, 귀하의 요청에 대한 핸들러입니다. 대신 IIS를 사용하도록 IDE를 설정할 수 있습니다. 프로젝트의 속성 페이지를 클릭하고 웹 탭에서 가상 디렉터리를 설정할 수있는 IIS 사용 라디오 단추가 표시됩니다. 그럼 더 이상 카시니. 당신이 만드는 단위 테스트 Visual Studio에서 기능을 사용한 경우

는 그런 다음 UrlToTest 속성은 카시니가 시작하는 원인이 무엇이

[TestMethod()] 
[HostType("ASP.NET")] 
[AspNetDevelopmentServerHost("C:\\working\\MDTest\\MvcApplication1", "/")] 
[UrlToTest("http://localhost:1169/")] 
public void AccountControllerConstructorTest() 
{ 
    //Implementation 
} 

같은 시험을 한 것입니다. 위에서 언급했듯이 컨트롤러는 HTTP 처리기이므로 asp.net 환경이 필요하므로 http를 사용하여 컨트롤러를 테스트해야합니다. cassini (공정한 정도)가 마음에 들지 않는다면 IIS를 작동 시키려면 여전히 필요합니다. 당신이 바로 웹 프로젝트를 클릭하면

는 다음 단위 테스트는 카시니 :

+0

IIS를 사용하고 싶지 않습니다. 웹 환경이없는 클래스를 테스트하기 만하면됩니다. –

+0

이것이 왜 카시니가 시작하게 될지 모르겠습니다. 이것은 단위 테스트입니까, 아니면 자동화 된 테스트입니까? 어쩌면 당신은 당신의 테스트를위한 코드와 어쩌면 일부 타겟 코드를 게시 할 수 있습니다. 또한 단위 테스트 인 경우 nunit 또는 microsoft입니까? –

+0

방금 ​​시도해 봤는데, 도움이되지 않으면 알려 주시거나 답변이있는 경우 답변을 드리겠습니다. –

0

카시니없이 실행이

[TestMethod()] 
[HostType("ASP.NET")] 
[UrlToTest("http://localhost/MvcApplication1")] 
public void AccountControllerConstructorTest()... 

를 생성합니다 기능 만들기,이 게시물의 상단에있는 지시 사항을 따르십시오 단위 테스트를 실행할 때가 아니라 F5 또는 Ctrl-F5을 눌러서 디버깅하거나 프로젝트를 실행하는 경우에만 실행해야합니다. F5을 누르면 ASP.NET 프로젝트 속성을보고 탭을 선택하여 수행 할 작업을 수정할 수 있습니다. 테스트 실행 방법은 지정하지 않았지만 Visual Studio 유닛 테스트 프레임 워크와 NUnit과 같은 프레임 워크는 모두 Cassini가 아닌 별도의 프로세스에서 테스트를 실행합니다. 테스트를 실행하기 위해 자신의 콘솔 응용 프로그램 프로젝트를 말한 경우이 프로젝트를 StartUp 프로젝트로 설정했는지 확인해야합니다. 그런 다음 F5을 누르면 Cassini가 아닌 테스트 콘솔 응용 프로그램이 실행됩니다.

+0

VS에서 디버그하지 않고 테스트를 실행하려고하면 Cassini가 시작됩니다. –

+0

ASP.NET 웹 응용 프로그램 프로젝트가 있고 "웹"탭에서 "Visual Studio Development Server 사용"으로 구성한 경우 프로젝트를 실행할 때 Cassini가 시작됩니다. 디버그 나 릴리스 버전을 실행해도 상관 없습니다. 카시니 (Cassini) 대신에 무엇을 시작할지, 아니면 콘솔 애플리케이션으로할지, 아니면 내장 또는 NUnit과 같은 테스트 프레임 워크를 사용해야할지 결정해야합니다. –

0

디버그 모드에서 테스트를 실행하면 cassini가 시작됩니다. 디버그 모드없이 테스트를 실행하면 그렇지 않습니다.

+0

이유는 없지만 두 모드 (디버그 및 디버그 없음)에서 시작됩니다. –

+0

여러 프로젝트를 시작 프로젝트로 표시했거나 실행 모드가 웹 프로젝트에서 활성화 대신 디버그로 표시되었을 수 있습니다. 또한 프로젝트 중 하나에서 빌드 이벤트가 될 수도 있습니다. –

1

문제는 코드 적용 범위입니다. 나는 그것을 비활성화 시켰고 이제는 cassini가 (디버깅없이) 더 이상 시작하지 않는다.

+1

@ JorgeF 문제가 해결되면 답변으로 표시 할 수 있습니까? –

관련 문제