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


221

내장을 사용하는 테스트가 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");
        }
    }
}

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


어떤 버전 VS 2012? TestDriven.Net과 같은 테스트 러너를 다운로드하거나 Resharper에 테스트 러너가 있습니다.
Brett Allred

Visual Studio 2012 Ultimate를 사용하고 있습니다.
ctrl-alt-delor

참조로 추가 한 프레임 워크 버전과 UnitTesting 라이브러리 버전을 공유하십시오
Adil

5
내 경우 app.config 파일을 제거하면 단위 테스트 탐색기가 수정되었습니다.
크리스 Richner

4
출력 창의 '테스트'카테고리에서 오류를 찾으십시오. 릴리스 빌드에서 기능 테스트를 만들고 디버그 빌드 (dll이 다른 폴더 구조에 있음)를 사용하여 디버깅하려고하면 빌드 오류가 발생하지 않지만 풀다운 메뉴에서 테스트를 받아야합니다. 이를 해결하면 테스트가 테스트 탐색기에 나타납니다
gDexter42

답변:


227

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

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

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

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

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

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

빌드했다.

여전히 나타나지 않았다.

마침내 청소했다

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

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


청소를하는 것이 도움이 되더라도 문제가되지는 않습니다. 네트워크 드라이브 프로젝트에 문제가 있습니다. 그리고 빌드가 항상 도움이된다는 사실은 버그가있는 빌드 도구의 증상 일뿐입니다.
ctrl-alt-delor

7
와! "Clean Solution"은 실제로 작동하는 것 같습니다 (모두 재 구축이 아니라). Visual Studio 6.0에서 유용한 해킹이 중지되었다고 생각했습니다!
Dave

이 문제가있는 동료에게는 "청결"기능이 작동하지 않았습니다. TFS 작업 공간에서 모든 소스 코드를 삭제하고 최신 상태 (덮어 넣기)를 얻은 후에 효과가있었습니다. 그런 다음 훌륭하게 작동했습니다!
Michael R

2
이것은 나를위한 것이었다. x86, 모든 CPU, x64가 혼합 된 솔루션에서 특정 프로젝트의 테스트를 찾지 못했습니다. 솔루션을 청소하고 테스트 설정의 기본 아키텍처를 변경 한 후 다시 빌드하면 모든 것을 볼 수있었습니다. 아키텍처를 변경하면 다른 CPU 아키텍처에서 컴파일 된 테스트를 발견했기 때문에 실제로 의미가 없습니다.
Ben H

2
기본 프로세서를 변경하자마자 모든 테스트가 나타났습니다. 이거 정말 고마워!
Dan But

160

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

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

24
거의 당황스러워서 저를 위해 찾지 못했습니다 :)
landi

5
나는이 문제도 가지고 있었다. 광산은 [TestMethod]다른 코드의 복사 붙여 넣기 때문에 정적이기 때문에 발생했다 .
Seph

2
@Seph : 새 테스트 프로젝트에 있던 [TestMethod]것이기 때문에 정적 인 곳 UserTest1.cs! 또한 내 문제를 해결했습니다.
Andre Luus

4
또한 static당신의 방법 앞에 두지 마십시오 . 왜 그렇게 자주 습관을 버리는 지 모르겠습니다.
levininja

1
이것은 당신이 그렇게 분명했던 일에 많은 시간을 잃을 수있는 방법에 대해 흥미로 웠습니다. 답변 감사합니다 Joe King
Thulani Chivandikwa

58

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

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

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

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

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

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

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

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


예, 이것이 작동하지 않는 다른 이유 일 수 있지만 왜 저에게 효과가 없는지 아래의 틱 된 답변을 참조하십시오. (공유 폴더는 기본적으로 비활성화되어 있습니다), 이것을 변경하는 방법을 알려 주면 몇 가지 사항을 알려 드리겠습니다.
ctrl-alt-delor

x64와 같은 프로세서는 없지만 Microsoft가 x86-64 / amd64 / x86e에 대해이 용어를 사용합니다. x86도없고 x86 제품군 만 있습니다. x는 알 수없는 것을 나타내므로 x64 제품군의 구성원은 164, 264, 364입니다. 또는 x86은 86 비트 프로세서였습니다.
ctrl-alt-delor

귀하의 답변에 감사드립니다. 도움이됩니다 (x86 빌드에서 x64 빌드로 전환)
enguerran

VS 2015에서도 테스트 탐색기 창이 열린 상태로 작동했습니다. 명령 줄에서 테스트를 실행할 수도있어서 다행입니다.
Bryan

32

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

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

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


1
NuGetInstall-Package NUnitTestAdapter
Darren Hale을

@DarrenHale에게 감사합니다. NuGet에서이 패키지를 검색하는 동안 NUnit 2.6.4 Framework를 포함한 NUnit TestAdapter 라는 번들도 발견되었습니다 .
ray

18

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

public async void ListCaseReplace() { ... }

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

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


2
이것을 알아내는 데 시간이 많이 걸렸습니다. 비동기식으로 몇 가지 메소드를 리팩터링하고 키워드를 테스트에 추가했습니다. 이것으로 새로운 단위 테스트를 코딩했을 때만 다른 테스트도 누락 된 것을 알았습니다. 왜 이런 일이 발생하는지 설명하는 이 대답 을 찾았습니다 .
julealgon 2016 년

12

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

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

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

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

 caspol -lg

이 답변은 더 이상 답변에 관심이 없으므로 질문자에 의해 확인되지 않습니다. 그것이 당신을 위해 (또는) 작동하지 않는 경우 아래에 의견을 추가하십시오.
ctrl-alt-delor

6
@richard 그래서 당신은 문제의 다른 원인에 대한 해결책을 설명하는 다른 답변을 확인하고 공표하지 않은 답변을 받아들입니까? ....이상 하네!
Stephan Bauer

1
이것은 나에게 문제가되었지만 해결책은 아닙니다. 나는 모든 것을 지역으로 옮겼으며 모든 테스트가 발견되었습니다! 감사!
Travis Swientek

1
CasPol.exe에서 찾을 수 있습니다 %windir%\Microsoft.NET\Framework[64]\[version]. 적절한 아키텍처에 대한 정책을 설정하고 있는지 확인하십시오. 출처 : msdn.microsoft.com/en-us/library/cb6t8dtz%28v=vs.100%29.aspx
EpicVoyage

이것은 또한 나에게 문제였습니다. VS가 그들을 집어 들지 않았지만 원인에 대해 아무런 지시도하지 않았습니다!
kaybee99

10

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

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

COMPLUS_LoadFromRemoteSources 및 값을 1로 설정


6

나는 같은 문제가 있었다. 내 경우에는 개인 재산 으로 인한 TestContext .

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

public TestContext TestContext
{
    get;
    set;
}

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


동일한 증상도 OK이므로 변경 한 내용 (무엇에서)을 명확하게하면 다운 투표를 제거합니다.
ctrl-alt-delor

1
나는 정확히 똑 같았고, 완전한 실을 따랐고, 이것에 와서 그것을 공개 빙고로 설정하라는 아이디어를 얻었습니다. 새로운 테스트가 나타났습니다. 이전 의견을 이해하지만 ...이 의견은 Google에서 제공하므로 테스트가 표시되지 않을 때 읽을 스레드입니다.
edelwater

1
이것이 내 문제의 원인이었습니다. 개인 인터페이스로 종속성 인터페이스 필드가 있습니다. 당신은 생명의 은인입니다!
Alex

6

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

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

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


6

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

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

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


이렇게하면이 질문에 대한 방문자 대부분의 문제가 해결되고 대부분의 답변이 요약되지만 문제의 문제는 다루지 않습니다.
ctrl-alt-delor

1
감사합니다. UTA001: TestClass attribute defined on non-public class
Jarek Przygódzki

6

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

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

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


3
나도 일 했어! 나는 이것이 별도의 문제라고 생각합니다.
저스틴 모건

2
이봐 요. 대단히 감사합니다 .. 관리자로 실행하지 않고 작동시킬 수있는 해결 방법이 있습니까?
Sriram Sakthivel

2
죄송하지만 관리자 권한으로 실행하는 것이 좋은 해결책이라고 생각하지 않습니다. 이것이 유일한 방법이라는 증거가 없다면.
ctrl-alt-delor

관리자 권한으로 실행하는 것은 큰 문제가 아닙니다. 그러나 문제 중 하나는 Workitem을 전망으로 보낼 수 없다는 것입니다.
Edward Olamisan

관련 SO 게시물에 연결하기 위해 답변을 수정했습니다. 그래도 스리 람과 리차드에 동의합니다. 이것이 효과가 있지만 해결책이 아니라 해결책입니다. 왜 작동하는지도 불분명합니다.
Steven Jeuris

4

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

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

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


나는 이것이 같은 문제라고 생각하지 않습니다.
ctrl-alt-delor

3
나는 그것이 생각 입니다 그것이 단지 것, 같은 문제가 발생하는 다른 뭔가에 의해.
Stephan Bauer

2

상단 메뉴 바에서 ...

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

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

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

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


나는 그것을 시도했다. 둘 다 nunit과 함께 일했다. 그러나 이번에는을 사용하여 작성된 다른 사람의 테스트를 실행하려고하는데 다른 Microsoft.VisualStudio.TestTools.UnitTesting어떤 문제가 있습니까?
ctrl-alt-delor

차이를 만들지 않습니다 ... 때때로 단위 테스트를 발견하지 못하는 경우가 있습니다 ... 테스트 탐색기를 열고 솔루션을 빌드하면 단위 테스트가 잠시 동안 나타납니다 ... 이미 알고있을 수 있습니다. ..
Adil

2
Express 버전이나 테스트 도구가 포함되지 않은 버전을 사용하고 있는지 확인하고 싶었습니다. 타사 테스트 러너를 설치해 보셨습니까?
Brett Allred

2

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


필자의 경우 app.config도 단위 테스트의 모양을 죽였습니다. app.config를 삭제하고 테스트 프로젝트를 다시 빌드 한 후 마침내 돌아 왔습니다!
Chris Richner

2

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


2

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

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

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


2

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


2

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

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

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


@srebella이 문제를 해결 한 것이 좋습니다. 나는 이것을 해결하기 위해 며칠을 보냈다. Pls는 귀하의 경험을 커뮤니티와 공유합니다. 효과가 있다고 생각되면이 답변을 맨 위에 넣으십시오. 감사합니다 :-)
Shiran Jayawardena

1

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


1

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

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

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

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

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


1

웹용 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

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


1

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


sn -Vr *,<public key token>VS 개발자 명령 프롬프트에서 관리자로 로컬 컴퓨터에서 서명 확인을 건너 뛰십시오
Silas

1

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

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

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


1

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


1

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

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


1

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. 테스트 열기> 테스트 탐색기> 모두 실행

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

도움이 되었기를 바랍니다


1

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


1

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

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

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

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


1

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

    [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();

    }

테스트를 보았다.


더 나은 대답은[Test] public void XamarinExampleTest() { // This workaround is necessary on Xamarin, // which doesn't support async unit test methods. Task.Run(async () => { // Actual test code here. }).GetAwaiter().GetResult(); }
Robert Green MBA

3
"테스트는 비동기 메소드를 좋아하지 않습니다 "false 입니다. "테스트는 비동기 void 메소드를 좋아하지 않습니다 "사실 이며 솔루션은 단순히 테스트 메소드를 비동기 태스크 로 선언하는 것 입니다.
Massimiliano Kraus

1

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

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

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.