Programing

Visual Studio 2013에서 단위 테스트를 찾지 못함

lottogame 2020. 6. 14. 10:22
반응형

Visual Studio 2013에서 단위 테스트를 찾지 못함


Visual Studio 2013에는 하나의 웹 프로젝트, 하나의 라이브러리 프로젝트 및 하나의 단위 테스트 프로젝트로 구성된 간단한 솔루션이 있습니다. 솔루션을 열고 단위 테스트를 실행하려고하면 Visual Studio에서 검색하지 않습니다. 테스트를 실행하려면 메뉴로 이동하여 테스트-> 실행-> 모든 테스트 실행을 선택하거나 테스트 탐색기 창을 열어보십시오. 메소드에 의해 Visual Studio는 솔루션에서 테스트를 찾지 않습니다.

먼저 간단한 단위 테스트 프로젝트를 만들고 테스트를 실행하면 Visual Studio에서 테스트를 발견하고 실행할 수 있습니다. 그런 다음 이전 솔루션을 열면 Visual Studio는 이제 모든 테스트를 감지합니다. 솔루션을 저장하려고하지만 단위 테스트 프로젝트를 먼저 만들지 않고 솔루션을 닫았다가 다시 열면 Visual Studio에서 테스트를 다시 찾지 않습니다. 이것은 왜 이런 일이 일어나고 있는지 모르는 매우 이상한 행동입니다.

비주얼 스튜디오 팀 재단과 통합 된 소스 컨트롤 git을 사용하던이 프로젝트에서 혼자 일했습니다. Visual Studio의 문제는 새로운 요소가 프로젝트에 왔을 때와 온라인으로 소스 제어를 통해 솔루션을 다시 만들어야 할 때 단위 테스트가 시작되지 않는다는 것을 발견하지 못합니다. 이 전에 모든 테스트는 항상 Visual Studio에서 발견되었습니다.

단위 테스트를 만들기 위해 dll Microsoft.VisualStudio.QualityTools.UnitTestFramework를 사용합니다. 내 Visual Studio 버전은 다음과 같습니다. 웹 버전 12.0.30723.00 업데이트 3 용 Microsoft Visual Studio Express 2013 3. 내 .net 프레임 워크 버전은 4.5.50938입니다.

모든 테스트는 다음과 같습니다.

[TestClass] 
public class Service1Test 
{ 
    [TestMethod] 
    public void Test1() 
    {
        Assert.IsTrue(True); 
    } 
}

테스트가 제대로 표시 되려면 때때로해야 할 일이 있습니다.

  1. 솔루션이 보호 된 드라이브에있는 경우 읽기 / 쓰기를 위해 관리자 액세스가 필요한 경우 때로는 테스트의 일부만 발생합니다. 이 경우 관리자로 VS를 확실히 실행하십시오.

  2. 솔루션이 64 비트 인 경우 테스트> 테스트 설정> 기본 프로세서 아키텍처가 x64로 설정되어 있는지 확인하십시오. 때로는 x86으로 설정됩니다. x64로 설정 한 다음 다시 빌드하십시오.

  3. 때로는 테스트 탐색기가 다시 시작되기 때문에 Visual Studio를 다시 시작하면 트릭이 발생합니다.

  4. 실제로 테스트 프로젝트 / 솔루션을 빌드하는 것을 잊지 마십시오. (나머지 프로젝트로 빌드하려면 솔루션> 특성> 구성 특성> 구성을 마우스 오른쪽 단추로 클릭하고 테스트 프로젝트의 "빌드"상자를 선택하십시오.)

  5. 테스트가 public테스트 클래스 섹션에 있는지 확인하십시오


NUnit을 사용하는 경우 먼저 NUnit 어댑터를 다운로드하십시오.

도구 → 확장 및 업데이트… → 온라인으로 이동하여 "NUnit 테스트 어댑터"를 검색하십시오.


테스트 클래스가 있는지 확인하십시오 public. 다른 클래스를 참조하는 경우에도 같은 클래스인지 확인하십시오.

또한 어설 션이 없거나 테스트를로 장식 [TestMethod]하지 않으면 테스트가 인식되지 않을 수 있습니다.

2 가지 추가 사항 : 1) 비동기 단위 테스트는 기껏해야 웃기는 일이지만 최악의 상황은 전혀 없습니다. Stephen Cleary 의이 기사살펴보고 관심이 있으시 다면 여기에서 멀리 떨어지 십시오.

2) NUnit을 사용하고 동일한 문제가 발생하면 [TestCase]Nunit 대신 Nunit에 대한 것임을 명심하십시오.[TestMethod]

위에서 말했듯이, 여기 에 코드 프로젝트에 게시 기사 가 있습니다. MSTest& 와 함께 NUnit, 스핀을주고 아무것도 놓치지 않도록하십시오.


나는 같은 문제가 있었지만 다른 해결책은 효과가 없었다. 2 어댑터와 함께 NUnit 3 프레임 워크를 사용하고 있음이 밝혀졌습니다.

NUnit 3을 사용하는 경우 확장 및 업데이트로 이동하여 NUnit3 테스트 어댑터를 설치하십시오.


XUnit 사용자는 테스트 탐색기 창에 더 이상 테스트가 나열되지 않습니다. 테스트를 다시 검색 할 수있게하려면 아래 강조 표시된 이 중요한 팁을 시도 하십시오 .

테스트를 발견하거나 실행하는 데 문제가있는 경우 Visual Studio 내에서 손상된 러너 캐시의 희생자 일 수 있습니다. 이 캐시를 지우려면 Visual Studio의 모든 인스턴스를 종료 한 다음 % TEMP % \ VisualStudioTestExplorerExtensions 폴더를 삭제하십시오. 또한 프로젝트가 단일 버전의 Visual Studio 러너 NuGet 패키지 (xunit.runner.visualstudio)에만 연결되어 있는지 확인하십시오.

TEMP를 입력하여 대상 폴더를 찾으십시오.


때때로이 문제가 발생합니다. 나를 위해 일하는 것은 Visual Studio를 종료하고 폴더로 이동하는 것입니다.

%LocalAppData%\Microsoft\VisualStudio\12.0\ComponentModelCache

내용을 삭제하십시오.

Visual Studio를 열고 프로젝트를 다시로드하면 테스트 탐색기에 테스트가 다시 포함되어야합니다.


미래의 Google 직원에게는 드문 시나리오가 발생했습니다.

내 기본 테스트 클래스에는 TestContext라는 속성이 있습니다. 이것은 MSTest의 예약 TestContext 속성을 방해하여 VS / Resharper에서 모든 테스트를 숨길 수 있습니다 (베이스에서 상속되지 않은).


나를 위해 '솔루션 구성'을 (릴리스 대신) 디버그로 변경했습니다.


내 문제는 단위 테스트 방법이 void 가 아니고 매개 변수를 받기 때문에 발생했습니다.


async voidVS 테스트 탐색기에서 로 표시된 단위 테스트 방법을 찾을 수 없음을 발견했습니다. VS가 테스트가 끝날 때까지 기다렸다가 성공 여부를 결정할 방법이 없기 때문입니다. 비동기 적으로 실행하기 위해 테스트 메소드가 절대적으로 필요한 경우 대신 대신 태스크를 리턴하도록하십시오 async Task. 이것이 문제를 해결한다는 것을 알았습니다.


모든 프로젝트를 x86 / x64 대신 MSIL (Any CPU)로 빌드하십시오. 이상하게 나를 위해 일했다


AndyG의 솔루션이 작동하는 동안 다음과 같은 방법으로 PreferredToolArchitecture 환경 변수를 "x64"로 설정하는 것이 더 오래 지속될 수 있습니다.

Visual Studio에서 기본 amd64 도구 체인을 사용하도록 만드는 방법

또는

  • 제어판 | 시스템 및 보안 | 시스템 | 고급 시스템 설정 | 환경 변수
  • 선호하는 도구 아키텍처 = x64
  • DefaultToolArchitecture = 네이티브 64 비트
  • PROCESSOR_ARCHITECTURE = x64
  • 프로세서 아키텍처 = x64

나는 같은 문제에 직면하고 있었고 솔루션 플랫폼 메뉴에서 "혼합 플랫폼"을 선택하면 다른 답변들도 작동한다는 것을 다시 한 번 기억했습니다.


나는 다음과 같이 내 것을 추가했다.

public static void TestMethod1(){}

정적을 제거하면 작동하기 시작했습니다 ....


Nuget 패키지 관리자로 이동하여 다음과 같이 Nunit Adapter를 다운로드하십시오. 여기에 이미지 설명을 입력하십시오


프로젝트 메뉴> 구성 관리자로 이동하여 테스트 프로젝트 플랫폼이 나머지 프로젝트와 일치하는지 확인하고 빌드 후 다시 빌드하십시오.


방금 이것과 마주 쳤지 만 비슷한 사례가 보이지 않았습니다.

에서 .csproj내 테스트 프로젝트의 파일, NUnit를 참조 개인 정보 보호로 설정했다 False:

<Reference Include="nunit.framework, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
  <HintPath>..\packages\NUnit.2.6.4\lib\nunit.framework.dll</HintPath>
  <Private>False</Private>
</Reference>

내가 설정 한 후 <Private>에를 True일했다.


이 패키지 만 설치하면됩니다 :

NUnit 테스트 어댑터 NUnit 테스트 어댑터


테스트 탐색기 창에 테스트를 표시하려면 패키지 관리자에서 사용할 수없는 NUnit3 테스트 어댑터 3.0을 설치해야했습니다.

https://visualstudiogallery.msdn.microsoft.com/0da0f6bd-9bb6-4ae3-87a8-537788622f2d 에서 다운로드


나는 똑같은 문제가 있었다.

프로젝트에 추가 한 호환되지 않는 버전의 NUnit (3.2.0)과 설치 한 테스트 어댑터 (2.0.0) 때문입니다.

수정하려면 "도구> 확장 및 업데이트"를 사용하고 NUnit3 테스트 어댑터를 검색하십시오. 그 후 내 테스트가 발견되었습니다.

건배


의존성을 제대로 구현하기 위해 테스트 프로젝트에서 X64 아키텍처를 사용해야한다고 주장합니다 (제 경우와 같이). 테스트-테스트 설정 메뉴 에서 기본 프로세서 아키텍처를 수정해야 할 수도 있습니다. 이것을 X64로 설정하면 테스트 탐색기가 Microsoft.VisualStudio.TestTools.UnitTesting을 사용하여 테스트를 찾을 수있었습니다.


긴 목록에 추가해서 죄송하지만 완전히 다른 문제가있었습니다. 먼저 테스트 탐색기에서 '모두 실행'을 클릭 한 다음 Visual Studio에서 빌드 출력 창을 볼 때 문제를 발견했다고 언급하고 싶습니다. 메시지가 사라지면 적극적으로 확인해야합니다.

문제는 테스트 스캔 중에 DLL 이로 드되고 테스트 유형이 열거되는 것처럼 보입니다. 이로 인해 참조가로드되고이 프로세스 중에 오류가 발생하면 탐색기에 테스트가 표시되지 않습니다. 테스트 DLL이 성공적으로로드되지 못하게하는 두 가지 문제가 있습니다.

  • 구성 파일에 바인딩 바인딩이 여전히 남아 있습니다 (테스트 프로젝트에서 참조 된 것보다 낮은 버전의 NHiberate로 리디렉션).
  • 충돌하는 어셈블리 참조 (2 단계 참조는로드 할 수 없음) AsmSpy 는 이것들을 찾아내는 훌륭한 도구입니다.

네트워크 공유 또는 공유의 일부인 내 문서 디렉토리 에서 Visual Studio (내 경우에는 VS 2015 커뮤니티) 솔루션을로드하면 이 문제가 발생합니다. 솔루션과 기본 프로젝트를 로컬 폴더로 이동하여 해결했습니다.


2 일을 보낸 후 ... 위의 어느 것도 나를 위해 일하지 않았습니다. 유일한 "솔루션"은 다음과 같습니다. 프로젝트 속성으로 이동-> 빌드 탭. 그런 다음 창의 오른쪽 하단에있는 고급 버튼을 클릭하십시오. "Debug Info :"를 "full"로 변경하고 확인을 클릭하십시오.

스크린 샷은 다음과 같습니다. 여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오여기에 이미지 설명을 입력하십시오


I came across the same issue. And investigated and found that the dll's were not build, and put in the right folder. as soon as I changed my configuration they appeared. - the Projects build options, what folder should be used? - the build menu entry build configuration, they should be checked.

that fixed it for me.


For the Visual Studio 2013.5, clearing the \TestResults directory in the solution helped. Visual Studio corrupted the mdf file in which it stores the discovered tests, thus preventing the discovery of unit tests.


Be sure your all projects are runing with the same configuration. Under your project's Properties => Debug => Platform in drop down list choose the appropriate platform (for me it was "Any CPU") as determined at your other projects.


  • 솔루션이 빌드되지 않은 경우 단위 테스트를 찾을 수 없으므로 시도해보십시오 (솔루션 빌드). 그러나 솔루션은 컴퓨터가 연결되어 있는지 묻는 헬프 데스크와 같습니다.
  • 클린 재 구축 후에도 문제가 해결되지 않으면 전체 배치 빌드를 실행해도 문제가 해결되었습니다.

같은 문제가 있었다; 테스트가 갑자기 발견되지 않았습니다.

Nunit 테스트 어댑터가 어떻게 든 비활성화되었습니다. 확장 프로그램 관리자에서 활성화를 클릭하면 문제가 해결되었습니다.


잘라 내기 / 붙여 넣기 오류가 발생 [Test Method]하여 테스트 전에 중단되었음을 알 때까지 동일한 문제가 발생했습니다 .

참고 URL : https://stackoverflow.com/questions/25304425/visual-studio-2013-doesnt-discover-unit-tests

반응형