IT story

Visual Studio 2012에서 내 테스트를 찾지 못하는 이유는 무엇입니까?

hot-time 2020. 4. 23. 08:02
반응형

Visual Studio 2012에서 내 테스트를 찾지 못하는 이유는 무엇입니까?


내장을 사용하는 테스트가 Microsoft.VisualStudio.TestTools.UnitTesting있지만 실행할 수는 없습니다.

Visual Studio 2012 Ultimate를 사용하고 있습니다.

두 가지 프로젝트에 대한 해결책이 있습니다. 하나는 테스트를 가지고 using Microsoft.VisualStudio.TestTools.UnitTesting, [TestClass]클래스 전에, [TestMethod]이전 시험 방법 및 기준 Microsoft.VisualStudio.QualityTools.UnitTestFramework(버전 10.0.0.0 런타임 버전 V2.0.50727). 나는 닷넷 프레임 워크 3.5, 4 및 4.5를 시도했지만 다른 사람들은 재 타겟팅 오류를 발생시킵니다.

솔루션과 프로젝트를 구축하려고했습니다. 테스트 탐색기에는`사용 가능한 모든 테스트를 발견 할 솔루션을 빌드하십시오. 솔루션에서 모든 테스트를 빌드, 발견 및 실행하려면 "모두 실행"을 클릭하십시오.

그래서 질문은 : Visual Studio에서 시험을 찾으려면 어떻게해야합니까?


http://msdn.microsoft.com/en-US/library/ms379625%28v=VS.80%29.aspx 그러나 다음과 같이 시도했지만 성공하지 못했습니다. 마우스 오른쪽 버튼을 클릭하고을 선택하십시오 create tests. 없습니다 create tests.


이 테스트가 있습니다 (컴파일하지만 테스트 탐색기에는 표시되지 않음).

using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace tests {
    [TestClass]
    public class SimpleTest {
        [TestMethod]
        public void Test() {
            Assert.AreEqual("a","a", "same");
        }
    }
}

나는 그것이 공유 드라이브에 있기 때문에 발견되었지만 (아래의 삭제 된 답변 참조) 아직 해결 방법을 모르겠습니다. (보안 설정에 관한 것).


나는 같은 증상을 보였지만 다른 상황에 처해있었습니다.

Peter Lamberg의 솔루션에 한 단계를 더 추가해야했습니다. 솔루션 / 프로젝트를 청소하십시오.

내 단위 테스트 프로젝트는 x64를 대상으로합니다. 프로젝트를 만들 때 원래 x86을 대상으로했습니다.

x64로 전환 한 후 모든 단위 테스트가 사라졌습니다.

테스트 메뉴-> 테스트 설정-기본 프로세서 아키텍처-> x64로 이동해야했습니다.

그들은 여전히 ​​나타나지 않았다.

빌드했다.

여전히 나타나지 않았다.

마침내 청소했다

그런 다음 그들은 나타났다.

Clean Solution과 Clean은 설정이 변경되었을 때 솔루션이 공을 재생하는 데 매우 유용하다는 것을 알았습니다. 때로는 극단적으로 가서 objand 및 bin디렉토리를 삭제하고 다시 작성해야합니다.


클래스 정의에 public 키워드를 추가하십시오 . 테스트 클래스는 현재 자체 어셈블리 외부에서 볼 수 없습니다.

namespace tests {
    [TestClass]
    public class SimpleTest {
        [TestMethod]
        public void Test() {
            Assert.AreEqual("a","a", "same");
        }
    }
}

이것은 때때로 작동합니다.

테스트 메뉴의 프로세서 아키텍처가 솔루션을 빌드하는 데 사용하는 프로세서 아키텍처와 일치하는지 확인하십시오.

테스트-> 테스트 설정-> 기본 프로세서 아키텍처-> x86 / x64

다른 게시물에서 언급했듯이 테스트 탐색기 창이 열려 있는지 확인하십시오. 테스트-> Windows-> 테스트 탐색기

그런 다음 테스트로 프로젝트를 다시 빌드하면 테스트가 테스트 탐색기에 나타납니다.

편집 : Ourjamie가 아래에서 지적했듯이 깨끗한 빌드를 수행하면 도움이 될 수 있습니다. 그 외에도 다음과 같은 문제가 하나 더 있습니다.

솔루션에서 생성 한 새 테스트 프로젝트에 대해 Configuration Manager에서 "빌드"확인란이 선택 해제되었습니다.

빌드-> 구성 관리자로 이동하십시오. 테스트 프로젝트에 모든 솔루션 구성 및 솔루션 플랫폼에 대해 빌드 체크 박스가 선택되어 있는지 확인하십시오.


Visual Studio 2012가 있는데 테스트 탐색기에서 테스트를 볼 수 없었습니다.

그래서 다음을 설치했습니다 : NUnit 테스트 어댑터

그것은 나를 위해 문제를 해결했습니다!


최근의 경험에서 위의 모든 것이 작동하지 않았습니다. 내 테스트 방법

public async void ListCaseReplace() { ... }

나타나지 않고 잘 컴파일되었습니다. async키워드를 제거하면 테스트가 테스트 탐색기에 나타납니다. 이것이 바로 async void'불을 잊어 버리는'방법이기 때문입니다. 분석법 async Task을 작성하면 테스트를 다시받을 수 있습니다!

또한 테스트 프로젝트의 구성을 "빌드"로 설정하지 않으면 테스트가 표시되지 않습니다. 구성 관리자> 빌드 할 테스트를 확인하십시오.


원래 포스터에서 알 수 있듯이 프로젝트가 공유 드라이브에 있기 때문에. VS.NET은 테스트 어셈블리를로드하고 실행하기 전에 네트워크 위치를 신뢰해야합니다. 이 블로그 게시물을 읽어보십시오 .

VS.NET이 네트워크 공유 항목을로드 할 수있게하려면 네트워크 공유 항목을 신뢰할 수있는 위치에 추가해야합니다. 전체 신뢰 목록 실행에 위치를 추가하려면 (환경에 따라 필요에 따라 수정) :

 caspol -m -ag 1.2 -url file:///H:/* FullTrust

기존의 신뢰할 수있는 위치를 확인하거나 나열하려면 다음을 실행하십시오.

 caspol -lg

내가 찾은 문제는 솔루션이 네트워크 드라이브 / 네트워크 위치 / 공유 드라이브에서 실행중인 경우 테스트 탐색기에서 테스트를 찾을 수 없다는 것입니다 (아무 것도 표시되지 않음)

환경 변수를 추가하여이 문제를 해결할 수 있습니다.

COMPLUS_LoadFromRemoteSources 및 값을 1로 설정


나는 같은 문제를 겪었다. 나의 경우에는 사유 재산 으로 인한 것이었다 TestContext.

다음과 같이 변경하면 도움이되었습니다.

public TestContext TestContext
{
    get;
    set;
}

@Ourjamie의 답변에 설명 된대로 솔루션을 정리하고 빌드 한 후 영향을받는 테스트 클래스의 테스트 방법을 테스트 탐색기에서 사용할 수있었습니다.


네트워크 공유에서 솔루션을 열려고 할 때도 같은 문제가 발생했습니다. 이 경우 테스트 탐색기는 단위 테스트를 감지하지 않습니다. 해결책은 다음과 같습니다.

제어판-> 인터넷 옵션-> "보안"탭-> "인트라넷"을 클릭하고 네트워크 공유를 보유한 서버 IP 주소 또는 호스트 이름을 "사이트"목록에 추가하십시오.

이 작업을 마친 후 솔루션을 다시 컴파일했으며 이제 테스트가 나타났습니다. 이것은 @BigT의 답변과 매우 유사해야합니다.


몇 가지 일반적인 테스트 문제를 해결하기위한 빠른 검사 목록 다음을 확인하십시오.

  1. 테스트 클래스 및 테스트 방법은 public
  2. 테스트 클래스에는 [TestClass]속성이 있습니다
  3. 테스트 방법에는 [TestMethod]속성이 있습니다

도움이되지 않으면 청소, 솔루션 다시 작성 및 Visual Studio 다시 시작을 시도하십시오.


오류가 발생했습니다. "Failed to initialize client proxy: could not connect to vstest.discoveryengine.exe."

Visual Studio를 관리자 권한으로 실행하십시오. 그것은 나를 위해 일했다.

이 오류를 논의하는 또 다른 스택 오버플로 게시물이 있으며 동일한 솔루션 이 해당 오류 에 대해 작동합니다. 왜 이것이 작동하는지에 대한 질문이 남아 있습니다.


때때로 같은 증상이 나타납니다.

내가 한 일은 :
1. 테스트 탐색기 창을
닫았습니다. 2. 솔루션을 정리했습니다.
3. 솔루션을 다시 빌드합니다
. 4. 테스트-> Windows-> 테스트 탐색기에서 테스트 탐색기 창을 다시 시작했습니다 .

그리고 테스트 탐색기 창에서 테스트를 받았습니다.


상단의 메뉴 바에서 ...

테스트-> 실행-> 모든 테스트

테스트 탐색기에서 모든 테스트를 볼 수도 있습니다 (테스트-> Windows-> 테스트 탐색기)

VS 2012의 경우 더 이상 아무것도 빠지지 않으면 오른쪽 상단의 빠른 실행 표시 줄 (Ctrl + Q) "테스트"를 사용하여 검색하십시오.

도움이 되었기를 바랍니다.


이 문제를 해결하는 가장 좋은 방법은 .proj msbuild 파일을 만들고 문제가있는 단위 테스트 프로젝트를이 파일에 추가하고 mstest 명령 줄 버전을 사용하여 테스트를 실행하는 것입니다. mstest에서 테스트를 실행할 때만 나타나는 app.config에서 작은 구성 문제가 발견되었습니다. 그렇지 않으면 테스트 프로젝트가 제대로 빌드되었습니다. 또한이 방법에 대한 간접 참조 문제도 있습니다. mstest를 사용하여 명령 줄에서 단위 테스트를 실행할 수 있으면 클린 솔루션을 수행하고 솔루션을 다시 빌드하면 테스트를 올바르게 검색 할 수 있습니다.


제 경우에는 다른 것이 었습니다. 패키지를 설치 한 다음 제거하고 이전 버전을 다시 설치했습니다. configuration/runtime/asssemblyBinding/dependencyIdentity내 app.config에서 잔여 리디렉션 이 남았습니다 . 나는 그것을 고쳐야했다. Output을보고 Tests드롭 다운에서 " "을 (를) 선택하여 알아 냈습니다 . 오류 메시지가있었습니다. 이것은 고통이었다 ... 나는 그것이 다른 누군가를 돕기를 바랍니다.


이것은 OP의 질문에 대답하기보다는 여기에 오는 사람들을 돕는 것입니다.

Visual Studio를 닫았다가 다시 열어보십시오.

이것이 누군가를 돕기를 바랍니다.


나는 이것이 오래된 질문이라는 것을 알고 있지만 Visual Studio 2015에서는 새로 만든 테스트 클래스가 인식되지 않는 문제가 발생했습니다. 모든 것을 시도했다. 결국 문제는 클래스가 "프로젝트에 포함되지 않았다"는 것입니다. Visual Studio를 다시 시작하고 테스트 클래스가 없다는 것을 알았을 때만 이것을 발견했습니다. 숨겨진 파일을 보여 주면서 내가 작성한 다른 수업뿐만 아니라 파일도 포함되지 않은 것을 보았습니다. 희망이 도움이


다른 PC에서 솔루션을 빌드하려고 할 때이 문제가 여러 번 발생했습니다.

NUnit과 Specflow도 사용하고 있습니다. 기본적으로 테스트 프로젝트는 X86을 대상으로하지만 X64로 변경해야합니다. 단계는 1. 테스트 메뉴-> 테스트 설정-기본 프로세서 아키텍처-> x64입니다. 2. 빌드 빌드 3. 빌드 4. 여전히 테스트가 표시되지 않은 경우. 5. 도구  확장 및 업데이트로 이동 한 다음 NUnit 및 Specflow 라이브러리 설치 6. 빌드 빌드 7. 빌드

그런 다음 일반적으로 테스트는 테스트 편집기에 나타납니다.


VS 2012를 최신 업데이트로 업데이트했습니다. 즉, Visual Studio 업데이트 3입니다. 문제가 해결되었습니다.


나에게 해결책은 조금 덜 복잡했다.

방금 기존 솔루션을 내 컴퓨터 (gitHub에서 복제)로 가져 왔으며 Visual Studio에서 만든 자동 생성 된 .cs 파일을 추적하지 않습니다. (각 기능 파일마다 동일한 이름의 .cs 파일이 있습니다)

연결된 .cs 파일을 사용하지 않고 솔루션을 열면 실제로 바인딩 된 메서드를 탐색 할 수 있으므로 스펙 플로우가 올바르게 연결된 것처럼 보였지만 테스트 탐색기에서 테스트 이름을 볼 수 없었습니다.

이 문제를 해결하기 위해 단순히 프로젝트에서 기능 파일을 제외하고 다시 포함 시키면 VS가 자동 생성 된 코드 숨김 파일을 다시 생성해야합니다.

그 후 테스트 탐색기에서 테스트를 볼 수있었습니다.


웹용 Microsoft Visual Studio 2012 Express에서 Microsoft Visual Studio 2013으로 솔루션을 업그레이드 할 때이 문제가 발생했습니다.

2012 년에 단위 테스트 프로젝트를 만들었고 2013 년에 개설 한 후에 단위 탐색기 프로젝트는 테스트 탐색기에 테스트를 표시하지 않습니다. 테스트를 실행하거나 디버그하려고 할 때마다 출력 창에 다음과 같이 실패했습니다.

    Failed to initialize client proxy: 
    could not connect to vstest.discoveryengine.x86.exe

또한 테스트 디버깅시 Visual Studio 2012 인스턴스가 시작되고 있음을 알았습니다. 이로 인해 Unit Tests 프로젝트가 여전히 2012를 참조하고 있다는 사실을 알게되었습니다. 테스트 프로젝트 참조를 보면 잘못된 Microsoft Visual을 대상으로한다는 것을 깨달았습니다. 이 버전의 Visual Studio 용 Studio Unit Test Framework DLL :

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

버전 번호를 11.0에서 12.0으로 변경했습니다.

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

모든 것을 다시 빌드하고 문제를 해결했습니다. 모든 테스트가 테스트 탐색기에서 발견되었으며 이제 모든 테스트가 완벽하게 실행되었습니다.


테스트 프로젝트가 프로젝트 특성-> 서명 에서만 서명 지연으로 설정되어 있지 않은지 확인하십시오 . 그렇다면 선택을 해제하고 새로 빌드하십시오.


VS2013 Ultimate의 네트워크 공유에서 솔루션을 열려고 할 때도 같은 문제가 발생했습니다.

전원을 켜서 문제를 해결했습니다.

제어판-> 인터넷 옵션-> "보안"탭-> "로컬 인트라넷"을 클릭하고 사이트를 클릭 한 다음 "인트라넷 네트워크 자동 검색"이 선택되어 있는지 확인하십시오.


이것들은 모두 훌륭한 답변이지만 내가 아는 또 다른 이유가 있습니다. 나는 방금 그것에 부딪쳤다. 내 테스트 중 하나에서 사용하지 않는 개인 클래스가 있음을 나타내는 ReSharper 메시지가 나타났습니다. 다음 시험에서 사용할 수업이었습니다. 이로 인해 실제로 모든 테스트가 사라졌습니다.


"로컬 복사"가 "거짓"으로 설정되어있을 수있는 어셈블리에 대해서는 참조 된 어셈블리를 확인하십시오.

테스트 프로젝트가 자체 폴더 (예 : bin / Debug)에 빌드되고 프로젝트가 다른 어셈블리에 의존하고 참조 목록의 해당 어셈블리 중 하나가 로컬 복사 = "거짓"으로 표시되면 종속성이 없어서 어셈블리를로드 할 수 없습니다. 빌드 후에는 테스트가로드되지 않습니다.


NUnit Framework 2.6.4가 NUnit 테스트 어댑터에서 제대로 작동하지 않는 것 같습니다. 웹 사이트에서는 테스트 어댑터가 NUnit Framework 2.6.3에서만 작동한다고 언급합니다.

이것은 내 문제였습니다. 1. VS2012에서 Nuget을 통해 NUnit 및 NUnit 테스트 어댑터를 별도로 다운로드했습니다. 어떻게 든 NUnit이 2.6.4로 업데이트되었습니다. 갑자기 테스트 사례가 표시되지 않았습니다.

고치다:

  1. Nuget 및 Nuget Test 어댑터 제거

    ㅏ. 도구> Nuget> Nuget Pkg 관리자> 솔루션을 위해 Nuget Pkg 관리로 이동하십시오.

    비. 설치된 패키지 목록

    씨. 클릭 관리

    디. 프로젝트 확인

  2. NUnit 2.6.3 프레임 워크를 포함한 NUnit 테스트 어댑터 설치

  3. 클린 / 리빌드 솔루션

  4. 테스트 열기> 테스트 탐색기> 모두 실행

모든 테스트 사례를 봅니다.

도움이 되었기를 바랍니다


여기에 어떤 해결책도 도움이되지 않았습니다. 하나의 솔루션에 대해서는 테스트가 발견되지 않았지만 동일한 프로젝트를 참조하는 다른 솔루션은 제대로 작동했습니다. 마지막으로 solutionname.v12.suo 파일을 삭제하여이 문제를 해결했습니다.


나는 같은 문제가 있었지만 약간 다릅니다.

Visual Studio 2012를 사용하고있었습니다. 어떤 이유로 든 초기 생성 파일의 테스트 만 실행되었습니다. 그러나 다른 파일의 테스트는 실행되지 않았습니다. 여기에 게시 된 다른 솔루션을 시도했지만 작동하지 않았습니다.

마지막으로 테스트 클래스에 개인 메소드가 있다는 것을 알았습니다.이 클래스는 클래스 내부의 첫 번째 메소드였습니다. 방금 테스트 방법 후에 개인용 메서드를 옮겼습니다 . 이제 [TestMethod]속성이있는 메소드가 클래스 내의 첫 번째 메소드입니다. 이상하지만 지금은 작동합니다.

이것이 언젠가 누군가를 돕기를 바랍니다.


테스트는 비동기 메서드를 좋아하지 않습니다. 예 :

    [TestMethod]
    public async void TestMethod1()
    {
        TestLib oLib = new TestLib();
        var bTest = await oLib.Authenticate();

    }

이 작업을 수행 한 후 :

    [TestMethod]
    public void TestAuth()
    {
        TestMethod1();
    }

    public async void TestMethod1()
    {
        TestLib oLib = new TestLib();
        var bTest = await oLib.Authenticate();

    }

테스트를 보았다.


이것이 Google의 최고 결과이므로 내 답변을 추가하십시오.

Visual Studio 2015를 사용하고 있으며 (무의식적으로 방금 실행했습니다 Install-Package NUnit) NUnit3 패키지 NuGet을 테스트 프로젝트에 설치했습니다. NUnit 테스트 어댑터 확장이 이미 설치되어 있는데 테스트가 여전히 표시되지 않습니다.

도구> 확장 및 업데이트를 통해 NUnit3 테스트 어댑터를 설치하면이 문제가 해결되었습니다.

참고 URL : https://stackoverflow.com/questions/13533259/why-does-visual-studio-2012-not-find-my-tests

반응형