테스트 탐색기에서 실행되지 않는 테스트


146

현재 현재 32 개의 Unittest가있는 솔루션을 개발 중입니다. 나는 resharper 테스트 러너와 함께 일해 왔습니다. 모든 테스트가 실행 중이고 모든 테스트에 올바른 테스트 결과가 표시됩니다. 이제 동료가 Visual Studio 테스트 탐색기를 사용하여 자신의 컴퓨터에서 테스트가 실행되고 있지 않다고 말했습니다. 그들은 내 컴퓨터에서 작동하지 않으므로 로컬 누락 파일이나 무언가를 제외시킬 수 있습니다.

테스트 탐색기에 모든 단위 테스트가 표시되지만 "모두 실행"을 클릭하면 모든 테스트가 회색으로 표시되고 테스트 실행 결과가 표시되지 않습니다.

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

  • 모든 테스트 수업은 공개
  • 모든 테스트 클래스에는 [TestClass]속성이 선언되어 있습니다.
  • 모든 테스트 방법이 [TestMethod]속성을 사용하고 있습니다
  • 생산성 코드와 테스트 프로젝트는 모두 .NET 3.5를 대상으로합니다.
  • 나는 이미 정리 빌드에 내 솔루션을 시도, 및 / 또는 모두 삭제 한 obj, bin, DebugRelease폴더를

나는 그러한 행동을 유발할 수있는 힌트를 모욕했다.


3
ReSharper를 업데이트하십시오. 이 stackoverflow.com/questions/16011775/…를
kmhigashioka

18
VS 가 테스트를 실행하지 않은 이유를 말하면 멋 지지 않습니까? 일치하지 않는 대상 플랫폼, 누락 된 테스트 어댑터 ... :(
Bernhard Hofmann

1
그들이 ReSharper를 사용한다고 언급되어 있습니까?
Alex 75

5
@BernhardHofmann 나는 지금 이와 같은 문제를 겪었고 VS가 출력> 테스트에서 일부 오류 메시지를 뱉어내는 것으로 나타났습니다. 중대한. VS를 실망시키는 것은 그들을 더 잘 보이게하지는 않지만, 이런 상황에서 볼 수있는 곳입니다.
JLRishe

2
이 기능 요청을 피하는 데 관심이 있으신 분은 developercommunity.visualstudio.com/idea/947742/…
Kyle Delaney

답변:


157

프로젝트가 모두 AnyCpu가 아닌 경우 다음 두 설정이 일치하는지 확인할 수도 있습니다.

  1. [오른쪽 클릭 테스트 프로젝트]-> 속성-> 빌드-> 플랫폼 대상-예 : x64

  2. [메인 메뉴]-> 테스트-> 테스트 설정-> 기본 프로세서 아키텍처-> X64

이들이 일치하지 않으면 테스트 프로젝트가 자동으로 실행되지 않습니다.


5
이 답변은 "다시 켜고 끄는"목과 목입니다. 이것이 효과가 있다면 공감하십시오.
lukkea

이 하나 (anycpu를 혼합 된 플랫폼에서 전환) 내 문제를 해결
마르셀 인 Studer

1
테스트 프로젝트가 netstandard2.0이 아니라 netcoreapp2.2인지 확인하십시오
user2033412

4
일했다. 나는 실제로 VS와 함께 명확한 경고 또는 오류 메시지 또는 무언가를 우리에게 줄 것입니다.
anon

9
VS2019 버전 : 메인 메뉴-> 테스트-> AnyCPU 프로젝트의 프로세서 아키텍처-> X64
StackOverthrow

64

VS 2017에서 동일한 문제가 발생했습니다. 제 경우에는 VS를 다시 시작하여 해결되었습니다.


7
내가이 다운 보트를 낸 이유에 대한 나의 이전 의견이 삭제되었으므로 좀 더 명확 해집니다. 이것은 문제에 대한 해결책이 아닙니다. 근본적인 문제를 해결하지 못하는 매우 일시적인 수정입니다. 나는 사람들이 "전원을 껐다 다시 켜라"는 말을해야 할 장소라고 생각하지 않습니다. 그것은 당신이 여기 오기 전에 배워야 할 지식입니다. 해결책은 Joseph Simpson의 답변을 참조하십시오.
lukkea

5
@lukkea 나는 Joseph Simpson의 대답을 따르고 모든 프로젝트가 AnyCpu 인 곳임을 확인했습니다. 나는 여전히 여기에 설명 된 문제가있었습니다. 나를 위해 단순히 VS를 다시 시작하면 도움이되었습니다. VS2012에 이러한 종류의 hickup이있는 것은 이번이 처음이 아닙니다 (내 컴퓨터뿐만 아니라). 나는 이것이 좋은 해결책은 아니지만 프로젝트에 아무런 문제가 없다면 그것이 유일한 도움 일 수 있다는 것에 동의합니다. 그래도 재건축 청소가 도움이되지 않는지 확인해야합니다.
Sascha

2
'전원을 껐다가 다시 켜는 것'만으로 모든 문제를 해결할 수 있습니다. 여전히 얼마나 많은 문제가 해결되는지 놀랍습니다. 그것을 상기시키기 위해 stackoverflow에 가야한다는 것이 약간 당혹 스럽지만이 답변이 유용하다는 것을 알았습니다.
Richard Garside

2
@lukka 때로는 Visual Studio가 근본적인 문제이며 다시 시작하는 것이 해결책입니다.
JSON

1
여전히 VS2019에서 작동합니다 ....
Tronald

44

MSTest 대신 NUnit을 사용하는 경우 Visual Studio 2012/2013 용 NUnit 테스트 어댑터 확장 이 필요합니다 .


9
이를 통해 "NUnit 3 테스트 어댑터"를 설치해야한다는 사실을 알 수 있었습니다
Westerlund.io

10
VS 2019에서 패키지 관리자 nuget.org/packages/NUnit3TestAdapter
maylon

이 페이지 에 따르면 Microsoft.NET.Test.SdkNuget
BlueRaja-Danny Pflughoeft

VS 2017에서 Extension Nunit 3 Test Adapter를 설치했으며 작동했습니다.
Bob Lokerse

VS 2019에서 Extension Nunit 3 Test Adapter도 설치했으며 작동했습니다. 참고 사항 : Visual Studio도 업데이트해야했습니다.
Bob Lokerse

42

void 대신 Task를 반환하도록 비동기 테스트 방법을 변경해야했습니다.

그런 다음 테스트가 테스트 탐색기에서 활성화되어 실행되었습니다.


1
비동기 void 메소드가 완료 될 때까지 기다릴 방법이 없습니다. 비동기 무효는 "화재와 잊어"입니다. 그래서 테스트 할 수 없습니다.
Ketobomb

이 글을 읽을 때 내가했던 얼굴이 땅 위로 울려 퍼졌다. 내 어리 석음을 지적 해 주셔서 감사합니다. 그것은 나를 위해 일했다. 공모
JP Chapleau

"No duh"범주에 속하지만. 귀사의 반환 유형은 반드시 과제이지만 잊어 버리기 쉬워야한다는 사실이 명백히 드러나지 않기를 바랍니다. (세계의 다른 단위 테스트는 무효가 아닌 것으로 보이므로) 장치를 고정시키는 토끼 구멍을 아래로 보냅니다. 실제 구성 문제가없는 경우 구성 테스트 실제로 이것이 컴파일러를 유발했거나 런타임 오류가 가장 적게 발생하기를 바랍니다.
pat8719

2
@ pat8719는 코드 분석기에 좋은 아이디어처럼 들립니다. 쓰기가 너무 어렵지 않습니다. 방금 xunit 사실을 썼고 async void Foo()분석기가 불평하지 않았지만 확실하게 추가 할 수있었습니다. cc : @bradwilson
benmccallum

22

테스트가 작성된 프레임 워크 (예 : nunit, xunit, VS 테스트 등)를 확인하고 올바른 테스트 어댑터 / 런너 확장이 설치되어 있는지 확인하십시오.

나에게는 NUnit 3 테스트 어댑터가 없었고 nunit.framework 종속성 버전을보고 필요한 버전 번호를 확인했습니다 (솔루션 탐색기의 종속성 트리에서 .dll을 선택하고 F4를 눌러 속성 창을 불러 오십시오).


2
자기 자신에 대한 참고 사항 : 내 원래 MSTest 프로젝트가 거부되었습니다 Microsoft.VisualStudio.QualityTools.UnitTestFramework(어떤 버전인지 확실하지 않음 ). 해당 참조를 제거하고 최신 (v2.1.0) MSTest.TestAdapter (및 프레임 워크)
Adam Cox

@AdamCox Microsoft.VisualStudio.TestTools.UnitTesting더 이상 사용되지 않습니까? 이 테스트를 사용하여 의존했던 프로젝트에 대한 참조를 다시 추가 한 후 위와 같이 갑자기 종료되는 테스트가있었습니다.
ebyrob

@ebyrob, Athanasios의 대답은 관련이있을 수 있습니다. 그는 MSTest. * 패키지로 업그레이드 / 업그레이드했을뿐만 아니라 일부 종속성을 추가하고 바인딩 리디렉션을 수정해야했습니다. 경고 출력을 확인하십시오.
benmccallum

16

TLDR : 테스트 패키지를 업데이트하고 출력-> 테스트 콘솔을 확인하십시오.

나는 하루 반 동안 이것으로 고투했다. 그래서 여기 내가 해결하기 위해 한 일이 있습니다.

조짐

  1. TestExplorer에서 모두 검색 가능한 5 가지 단위 테스트 프로젝트
  2. 5 개 중 2 개가 제대로 실행 됨
  3. 3 전혀 달리지 않는다는 진술
  4. .net 프레임 워크 업데이트 후 문제가 시작되었습니다.

조사

모든 패키지는 .net 프레임 워크 업데이트 중에 업데이트되었으므로 작업중인 프로젝트와 작동하지 않는 프로젝트의 차이점으로 시작했습니다. 첫 번째 단서는 3 가지 프로젝트가 모두 MSTest.TestAdapterMSTest.TestFramework를 사용 하고 있다는 것이 었습니다.

당연히 VS 2019 의-> 출력 콘솔 -> 테스트 드롭 다운 으로 이동 하여 출력을 보았습니다. 거기에 유용한 것은 없습니다.

솔루션 중 1 단계 : MSTest.TestAdapterMSTest.TestFramework 를 버전 2.0.0으로 업데이트하십시오.

솔루션의 두 번째 단계 : 이제 출력 콘솔 -> 테스트 드롭 다운 출력이 차례로 나타나고 누락 된 패키지와 잘못된 바인딩 리디렉션이 표시되기 시작했습니다.

솔루션의 3 단계 : 누락 된 패키지를 수동으로 추가하십시오. 나를 위해 그것들은

  1. System.Runtime.Extentions
  2. 시스템. 반사
  3. 어쩌면 내가 놓친 것보다 더

솔루션의 4 단계 : 불필요한 바인딩 리디렉션을 제거 / 수정했습니다.

이것이 다른 누군가를 도울 수 있기를 바랍니다.


당신은 그 날 반을 구 했어요! 4.5 FW 버전 프로젝트를 업그레이드하고 패키지에서 불필요한 모든 항목을 제거하려고 시도 했으며이 상황에서 끝났습니다. 감사!
Numan

나는 비슷한 것을 경험하고 있다고 생각합니다. 결국 방금 프로젝트를 처음부터 다시 만들었습니다. 분명히 * .csproj 파일에는 줄을 설정 ToolsVersion하고 부딪히면 모든 것이 엉망이됩니다. 내가 말할 수있는 것은 MS 단위 테스트를 위해 "구매자주의"이며 * .csproj 파일을 즉시 교체 할 준비가되어 있습니다.
ebyrob

고맙게도 내 문제는 아니지만 콘솔 출력을 확인하는 팁에서 테스트 실행을 방해하는 오류 (DBContext Dispose 메서드에 오류가 있음)가 표시되었습니다.
이언 칼린


11

VS 2019를 새로 설치 한 후에도 동일한 문제가 발생했습니다. 테스트가 발견되었지만 "예기치 않은 오류가 발생했습니다." 기본적으로 선택된 x86 대신 x64를 설정하여 수정했습니다.

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


4
이것은 VS를 다시 시작하고 .vs 폴더를 삭제하는 것과 함께 나를 위해 수정되었습니다. 감사합니다.
Donald. 레코드

나는 이것이 여전히 문제라는 것을 믿을 수 없다 ... 바라건대, 마이크로 소프트는 한 시점에서 그 고전적인 걸림돌에 대해 어떤 종류의 경고를 출력했다.
기 illa LaHaye

10

프로젝트에서 Microsoft.VisualStudio.QualityTools.UnitTestFramework 어셈블리를 참조하지 않는 것으로 나타났습니다 . 대신 Microsoft.VisualStudio.TestPlatform.TestFrameworkMicrosoft.VisualStudio.TestPlatform.TestFramework.Extensions를 참조했습니다 . 이 두 개의 참조를 제거하고 Microsoft.VisualStudio.QualityTools.UnitTestFramework 어셈블리 에 대한 참조를 추가하면 이전에 파란색 느낌표로 표시된 테스트가 갑자기 활성화되어 작업을 시작했습니다.

잘못된 조립으로 단위 테스트가 실행되지 않음

올바른 조립으로 테스트 실행


3
.NET Framework 4.6.2에서 .NET Framework 4.7.2로 전환 한 후 테스트가 더 이상 실행되지 않았습니다. 몇 시간 동안 노력한 후에이 솔루션 만 나를 위해 일했습니다.
Éric Bergeron

.NET Framework 4.6.2에서 .NET Framework 4.7.2로 전환 한 후 app.config
bkwdesign의

10

나는이 문제가 있었고 다른 버전의 여러 테스트 프로젝트가 있었기 때문에 발생했습니다.

  • MSTest.TestAdapter
  • MSTest.TestFramework

프로젝트에 대한 너겟 패키지를 통합하여 동일하게 문제를 해결했습니다.


1
이 답변을 통해 비슷한 원인을 찾을 수있었습니다. 필자의 경우 일부 테스트 프로젝트에는 Microsoft.VisualStudio.TestPlatform.TestFramework에 대한 참조가 있었고 실행되지 않았지만 다른 테스트 프로젝트에는 Microsoft.VisualStudio.QualaityTools.UnitTestFramework에 대한 참조가있었습니다 (실행되는 프로젝트).
jr

8

필자의 경우 솔루션의 한 테스트 프로젝트에 MSTest.TestFramework 및 MSTest.TestAdapter 너겟 패키지가 설치되었지만 다른 테스트 프로젝트가 설치되지 않았기 때문입니다. 이러한 패키지는 솔루션의 한 프로젝트가 설치 될 때까지 테스트를 실행하지 않아도됩니다.

이 패키지는 테스트 프로젝트에 해당 패키지를 설치하여 수정되었습니다.


필자의 경우에는 정반대입니다. 다른 장치와 달리 MSTest nuget 패키지가있는 모든 단위 테스트 프로젝트는 실행되지 않습니다. 이상한.
Palle Due

해결 : .testsettings 파일이 있습니다. MSTest 패키지에는 .runsettings 파일이 필요합니다. 테스트가 실행되지 않는 이유입니다.
Palle Due

7

나를 위해 고친 것은 MS.Test nuget 패키지를 업그레이드하는 것이 었습니다.


7

Nunit3TestAdapterNuget 설치 로이 문제가 해결되었습니다.


이 문제도 해결되었습니다! :)
Eru

6

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

테스트 탐색기에서 AnyCPU 프로젝트의 프로세서 아키텍처를 설정하면 문제가 해결되었습니다! 위의 스크린 샷을 참조하십시오.


많은 감사합니다! 그것은 나를 도왔다 =)
Alexander Brattsev

4

내 경우에는 async voidMethod 가 있었고 로 대체 async Task되었으므로 예상대로 테스트가 실행됩니다.

    [TestMethod]
    public async  void SendTest(){}

로 교체하십시오 :

    [TestMethod]
    public async  Task SendTest(){}

1
이것은 내 문제였습니다
Kyle Delaney

3

나는 같은 증상이 있었다.

도구-확장 및 업데이트를 통해 올바른 Visual Studio 확장이 설치되어 있는지 확인하십시오. 필자의 경우 온라인 옵션에서 XUnit 및 Specflow를 설치해야했습니다.

그런 다음 솔루션을 청소하고 다시 빌드하십시오.

그래도 도움이되지 않으면 임시 디렉토리를 지우십시오 (시작 메뉴에서 % temp %를 검색하고 Temp의 모든 내용을 삭제하십시오).

마지막으로 Resharper를 제거하여 마침내 내 문제를 해결하십시오.


4
Resharper를 제거 하시겠습니까? 나는 이것이 해결책이라고 생각하지 않는다 ^^
Steve Rakebrandt

2

테스트 프로젝트가 빌드되도록 표시되지 않았습니다.

빌드-> 구성 관리자 ...-> 테스트 프로젝트의 빌드 확인


2

이런 종류의 오류로 여기에 왔으므로 문제 / 해결책을 게시합니다.

조짐:

  • 모든 테스트가 실행되는 것은 아니지만 프로젝트마다 의존하지 않았으며 일부 테스트 만 실행되었습니다.
  • 모든 처형 된 사람들은 녹색이었습니다.
  • 기술 스택 : 닷넷 코어 / XUnit / FluentAssertions
  • 모든 테스트가 변경되면 감지 및 업데이트되었습니다.
  • "실행되지 않은 테스트"를 여러 번 선택하거나 실행하면 실행할 수 있습니다.

문제:

코드에 다른 스레드 내에서 예외를 발생시키는 오류가 발생했습니다. 모든 테스트 어설 션이 통과되었지만 테스트 실행이 취소되었습니다. "테스트 출력"(NullException)에서 오류를 볼 수 있습니다.


+1 특정 테스트를 디버깅하려고했습니다. 마침내 다른 간단한 테스트를 실행했을 때 특정 테스트를 디버깅 할 수있었습니다. 이 대답은 그것을 시도하게했습니다.
Halvard

2

같은 증상이 있었지만 제 경우에는 닷넷 코어 SDK 버전 이었습니다. 이었습니다.

프로젝트는 2.2를 목표로했으며 3.0을 사용하여 빌드 할 수있었습니다. 최신 2.2 SDK 버전을 설치 한 후 실행할 수있었습니다.


2

출력 패널 (보기-> 출력)을 열고 "다음에서 출력 표시"드롭 다운에서 "테스트"를 선택하여 테스트 실행기의 오류 출력을 볼 수 있습니다.

의 출력을 표시


또한 Resharper를 설치 한 경우 테스트 파일을 열고 테스트 옆에있는 테스트 서클을 가리키면 추가 오류 정보를 얻을 수 있습니다.

다시 선명하게 출력

클릭하면 더 자세한 정보가있는 창으로 이동합니다. 또는 확장-> 셰이퍼-> 창-> 단위 테스트 탐색 결과로 이동하여 해당 창을 열 수 있습니다.

Resharper Unit Test 탐색


2

Visual Studio 2019 버전 16.4.6 및으로 많은 옵션을 시도 Microsoft.VisualStudio.TestTools.UnitTesting했지만 지금은 테스트를 성공적으로 실행하는 유일한 방법은 콘솔에서 다음 명령을 호출하는 것입니다.

dotnet test

테스트는 테스트 탐색기에서 발견되지만 결과는 "실행되지 않음"입니다.

Visual Studio를 업데이트해도 도움이되지 않았습니다.

다음 패키지의 최신 버전으로 업데이트를 실행하여 "주어진 테스트 케이스 필터 FullyQualifiedName과 일치하는 테스트가 없습니다"와 관련된 문제가 해결되었습니다.

Microsoft.NET.Test.Sdk
MSTest.TestAdapter
MSTest.TestFramework

1

나에게 해결책은 Resharper Unit Testing 설정 "Default platform architecture"를 "x64"로 변경하는 것이 었습니다.

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


이것은 테스트 탐색기에서 테스트 실행을 거부 한 .NET Core 3.1 프로젝트의 문제를 해결했습니다. 이 외에는 아무것도 고칠 수 없습니다.
J_L

1

나를 위해 VS2017을 다시 시작해도 작동하지 않았습니다. sln을 정리 한 다음 해당 파일 만 실행 및 실행하지 않은 테스트 파일을 찾았습니다. 그 후 나는 모든 것을 달렸고 다시 정상적으로 작동했습니다.


1

NUnit (3.11.0) 및 NunitTestAdapter (3.12.0) 너겟 패키지의 버전이 다릅니다. NUnit을 3.12.0으로 업데이트하면 Visual Studio에서 테스트가 실행되었습니다.


1

제 경우에는 MSTest nuget 패키지를 업데이트했습니다. 빈 MSTest 프로젝트 및 패키지 업데이트에서도이 문제를 재현 할 수 있습니다.


1

저에게 기본 클래스에 TestContext라는 속성이 있으면이 동작이 발생했습니다. 예를 들면 다음과 같습니다.

[TestClass]
public abstract class TestClassBase
{
    protected object TestContext { get; private set; }
}

[TestClass]
public class TestClass : TestClassBase
{
    // This method not found
    [TestMethod]
    public void TestCase() {}
}

1

MSTest를 사용하고 있음을 속성에서 알 수 있습니다. 비슷한 문제가 있습니다. 테스트 탐색기에 테스트가 표시되었지만 모두 실행을 선택하거나 개별적으로 선택하여 테스트를 실행하려고하면 테스트가 실행되지 않습니다.

내 문제는 빈 .NET 표준 클래스 라이브러리 프로젝트에서 단위 테스트 프로젝트를 수동으로 만들었습니다. MSTest.TestFrameworkNuGet 패키지를 설치 했지만MSTest.TestAdapter . 어댑터 패키지를 설치하자마자 예상대로 실행되었습니다.

돌이켜 보면 명백해 보이지만 템플릿에서 단위 테스트 프로젝트를 만들 때는 당연한 일입니다.


1

때때로 NUnit 테스트 어댑터 파일이 사용자 폴더 C : \ Users [User] \ AppData \ Local \ Temp \ VisualStudioTestExplorerExtensions \ NUnit3TestAdapter.3.8.0 / build / net35 / NUnit3.TestAdapter.dll에서 손상되는 경우가 있습니다. 테스트 탐색기가 정상적으로 작동하지 않습니다.


1

.Net 4.7과 함께 VS2019를 사용합니다. NUnit 확장 v3을 설치하고 X64를 사용하도록 테스트 설정을 변경했습니다. 내 단위 테스트 프로젝트는 모든 CPU입니다 (x64로 변경하면 작동합니다). 이제 코드를 통해 디버깅 할 수 있습니다.


1

이 문제는 실행중인 테스트 메소드가 StackOverflowException 을 발생시켜 테스트 러너가 테스트 실행을 중단시켜 결과적으로 출력 되는 경우에도 관찰됩니다.0 tests run .

범인을 찾아서 해결하려면 TestInitializeTestMethod 데코 레이팅 된 메소드 의 시작 부분에 중단 점을두고 디버그 모드에서 단위 테스트를 실행하고 예외가 발생할 때까지 스테핑 (F10)을 진행하십시오.

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