6

이것은 이상한 일이지만 갑자기 ExpectedExceptionAttribute이 저를 위해 일하는 것을 그만 두었습니다. 무엇이 잘못되었는지 확신하지 못합니다. VS 2010과 VS 2005를 나란히 실행하고 있습니다. VS 2010에서 작동하지 않습니다.이 테스트는 실패하지만 실패합니다.ExpectedExceptionAttribute가 MSTest에서 작동하지 않습니다.

[TestMethod] 
[ExpectedException(typeof(ArgumentNullException))] 
public void Test_Exception() 
{ 
    throw new ArgumentNullException("test"); 
} 

아이디어가 있으십니까? 이것은 정말 sux.

+0

나는 똑같아지고 있지만 그것에 대해 아무것도 찾을 수 없습니다. 다른 사람도 같은 문제가 있습니다. http://stackoverflow.com/questions/2628965/expectedexception-on-testmethod-visual-studio-2010 –

+0

테스트를 디버깅하거나 실행 중이십니까? – Joop

답변

1

나는 동일한 문제가 있었지만 마침내 그 문제를 해결할 수있었습니다. 어떻게 작동하는지 알지 못하는 사이에 내가했던 일의 목록이 어떻게 작동하는지 다시 알기 시작했습니다.

  • 는 코드 커버리지를 소등 .NET 4
  • 에 테스트중인 프로젝트를 변환
  • 는 코드 커버리지 켜지고 다시 다시
  • 고정 비트

확실하지 테스트 프로젝트에 RebuildAll나요 그것. 어쨌든 이것이 도움이되기를 바랍니다!

12

죽은 실을 부활시키지 않아도되지만, 다른 사람들에게 도움이 될 수 있기를 대비해서 갑자기이 일이 일어 났을 때 나는이 사실을 알게되었다. 드디어 Jon이 발견 한 것과 관련이있는 문제가 무엇인지 추적했습니다. ExpectedException 특성은 프로젝트가 TestProject로 인식되는 경우에만 작동하는 것으로 보입니다. (다만 닷넷 어셈블리)

언로드 프로젝트의 csproj 파일을 편집하고 다음 설정이 있는지 확인 :

<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> 

(가정 VS2010 프로젝트) 다시로드 프로젝트를 다시 빌드. ExpectedException 테스트가 통과해야합니다.

MSTEST에 NUnit과에서 테스트를 표준화 할 때 우리는이 문제에 실행

은 (당신 TFS의 CI 빌드 감사)과 [ExpectedException (유형)] 쓰레기와 Assert.Throws에게 <> 아름다운 단순 & 유연성을 교체 한 후, (물론 이거니와 발견 실종 [TestCase()]!) ExpectedException 테스트가 아무 이유없이 실패했습니다. ExpectedException을 사용하여 NUnit으로 다시 전환합니다. 문제가 없으면 MSTest가 실행을 거부합니다.

내가 찾은 후, 다시 NUnit를 얻을 밀어됩니다 말할 필요도없이 : http://blog.shawnewallace.com/2011/02/running-nunit-tests-in-tfs-2010.html

+1

안녕 스티브! 그런 훌륭한 대답을 할 때 오래된 질문에 대답하는 데는 부끄러움이 없습니다! 감사! – tmesser

+0

실제로 MsTest 내부에서 Nunit 구조체 (Assert.throws)를 사용합니다. – Konstantin

+0

VS2012에서 저 또한 효과가있었습니다. 하지만 더 이상합니다. ExpectedException을 가진 많은 일반 클래스 라이브러리가 매력적으로 작동합니다. 한번 기분을 상하게하는 프로젝트조차도 효과가있었습니다. – JotaBe

1

이 스레드 검색하고 나도 오늘이 발생하기 때문에,하지만 다른 이유로, 나는거야 구글에 와서 다른 가능한 anser를 여기에 추가하십시오.

나는 장소에 [ExpectedException] 속성을 가진 일부 기능에 대한 단위 테스트를했지만, 최근 코드 업데이트는 성능을 향상시키기 위해 async 테스트 된 기능을했다.

이로 인해 이러한 단위 테스트가 실패했습니다. 간단한 솔루션은 작업, 단위 테스트 비동기을 반환하는 것이었다과 함수 호출을 기다리고 있습니다 :

[TestMethod] 
[ExpectedException(typeof(Exception))] 
public async Task UnitTestAnAsyncFunction() 
{ 
    await sut.DoStuffAsync(); 

    //Assert 
    //ExpectedException 
} 
0

나는 csproj 파일을 편집 할 필요가 없습니다 또 다른 답을 가지고 있습니다. 근본 원인이 누락 된 참조 일 뿐인 것처럼 보입니다. 프로젝트 참조에 Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll을 추가하고 코드 파일에 using Microsoft.VisualStudio.TestTools.UnitTesting;을 추가했습니다.DLL은 내가 사람이 시간을 절약 할 수있는 희망

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\ 

또는

C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\ 

에서 찾을 수 있습니다.

관련 문제