테스트가 없습니다. 설치된 테스트 발견 자 및 실행기, 플랫폼 및 프레임 워크 버전 설정이 적절한 지 확인하고 다시 시도하십시오.


100

기존 솔루션을 .Net 4.6.1로 업그레이드하는 중이며 서버 빌드 중에 단위 테스트를 실행할 수 없습니다. 로컬에서는 예상대로 실행되고 프레임 워크 버전을 .Net 4.5.1로 되 돌리면 서버에서 다시 실행됩니다.

다음과 같은 오류가 발생합니다.

테스트가 없습니다. 설치된 테스트 발견 자 및 실행기, 플랫폼 및 프레임 워크 버전 설정이 적절한 지 확인하고 다시 시도하십시오.

더 간단한 설정으로 문제를 재현했습니다.

  • 두 개의 테스트 (하나는 실패하고 하나는 통과)가 포함 된 단일 C # 단위 테스트 프로젝트가있는 솔루션입니다.
  • 기본 템플릿 (TfvcTemplate.12.xaml)을 사용한 XAML 빌드 정의
  • Visual Studio Enterprise 2015 업데이트 1이 설치된 TFS 2015 업데이트 1 XAML 빌드 서버 (6 개의 유사한 서버가 있고 모두 동일한 결과를 생성 함)

Microsoft의 Brian Harry에 따르면 이것은 현재 조사중인 버그입니다. 업데이트 2에서 수정해야하며 임시 해결 방법은 나중에 게시해야합니다. 출처 : 링크
오스 테르 가드 찢어

난 비주얼 스튜디오 2013 업데이트 5에 닷넷 3.5 SP1에 같은 문제가
안드레이 부시맨

@AndreyBushman : 오류는 2015RTM과 함께 출시 된 2013U5에서도 발생할 수 있습니다. 그러나 해결 방법은 귀하의 경우에도 작동합니다.
Tore Østergaard

비슷한 문제가 있었는데 해결 방법은 테스트 설정에서 올바른 기본 프로세서 (32/64) 비트를 선택하고 엔진을 계속 실행하지 않는 것입니다. (vs 2017.x)
kfn

답변:


2

이것은 현재 .Net 4.6의 알려진 문제입니다.

TFS 2015 UPdate1을 사용하여 XAML TFS 빌드의 일부로 .Net 4.6.x 단위 테스트를 실행할 수 없음 소스 : https://connect.microsoft.com/VisualStudio/feedback/details/2245723

다음은 참조 할 수 있는 유사한 질문 입니다. TFS 2015 XAML 빌드 서버의 .Net 4.6 단위 테스트를 실행할 수 없습니다 .


3
안녕 패트릭. 귀하가 제공하는 두 링크는 ​​모두 내가 열어 본 케이스이므로 참조로 신뢰하지 않습니다 ;-).
오스 테르 가드 찢어

60

테스트 설정에서 기본 프로세서 아키텍처 를 X86에서 X64 로 변경할 수 있습니다 . 제 경우에는 이것이 문제였습니다.

이는 테스트중인 프로젝트의 플랫폼 대상이로 설정된 경우 발생합니다 x64.

테스트 설정 스크린 샷


이것은 나를 위해 그것을 해결했습니다. 제 경우에는 테스트중인 프로젝트와 테스트 프로젝트가 모두 x86으로 설정되었습니다. 테스트는 무시할 수 있었지만 실행하지 못했습니다. 모든 CPU로 변경 한 후 테스트가 실행되었습니다.
datchung

나는 방금 같은 문제가 있었고 이것이 해결되었습니다. 나는 또한 이것이 내 주요 프로젝트 참조에 나쁜 협상 시너지 효과를 가졌을 지 의심 스럽습니다. 이로 인해 갑자기 특정 DLL로드가 중지되었지만이 불쾌한 부작용을 결정적으로 결정하지는 못했습니다.
Allen

45

내 빌드도 테스트를 찾지 못했습니다. 테스트를 찾기위한 설정 및 솔루션은 다음과 같습니다.

VSTS (Visual Studio Team Services)를 사용하고 모든 빌드에서 NUGET 패키지를 새로 고치도록 구성된 빌드가 있습니다. NUnit을 사용하고 있으며 다음 NUGET 명령 (Visual Studio의 패키지 관리자 콘솔에서)을 실행하여 NUnitTestAdapter 라이브러리를 테스트 프로젝트에 추가하고 packages.config에서 확인하면 테스트가 VSTS 빌드에서 실행된다는 것을 발견했습니다.

Install-Package NUnitTestAdapter

Maurice가 NUnit3의이 게시물에 대한 의견에서 언급했듯이 다음 NUGET 패키지를 사용합니다 (링크에서 다른 유틸리티를 찾으십시오. 예 : dotnet CLI 및 Paket CLI).

Install-Package NUnit3TestAdapter

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


10
나는 현재 VSTS를 사용하고 있습니다. 조언대로 NUnit3TestAdapter를 추가했고 (NUnit 3.8.1을 사용하고 있기 때문에)이 솔루션이 내 문제를 해결했습니다. :-) 주셔서 감사합니다
모리스 Klimek에게

1
설치 패키지 NUnit3TestAdapter 내 문제 : 해결
Bimal 다스

27

제 경우에는 다음을 수행해야했습니다.

  1. 테스트 프로젝트를 netcore 2.0으로 변환 (이전 netstandard 2.0)

  2. 너겟 패키지 추가 xunit.runner.visualstudio

참조 : http://www.neekgreen.com/2017/11/20/xunit-no-test-is-available/


3
저도 같은 문제였습니다. 나는 그물 코어 xUnit의를 사용하고 있습니다
Amna

이것은 xunit 및 .NET Core 2.1을 사용하는 Visual Studio 2017에서도 저에게 효과적이었습니다.
Thorkil Værge

4
제 경우에는 .net 4.6.1 프로젝트 였으므로 빠진 유일한 것은 xunit 주자였습니다. 그것을 설치하고 작동했습니다.
Juan

1
Juan과 동일합니다. 러너 패키지 만 누락되었습니다. 테스트 프로젝트의 패키지 관리자에서 실행하면 문제가 해결되었습니다. install-package xunit.runner.visualstudio
Premil

12

MSTest를 사용하고 있습니다. 나를 위해, 그것은이었다 버전 missmatch 다른 종속 패키지 누락은 -

1) 내 패키지 폴더에는 MSTest.TestFramework.1.2.1 패키지 만 포함되어 있습니다. 내 프로젝트 파일 (.csproj)에서 Target Name의 참조는 패키지 폴더에없는 MSTest.TestAdapter.1.2.0 패키지였습니다. 내 packages.config에는 MSTest.TestFramework.1.2.0에 대한 참조도 있습니다.

2) 그래서 Nuget 패키지 관리자에서 MSTest.TestAdapter.1.2.0을 설치하고 프로젝트 및 패키지 파일에서 MSTest.TestFramework 버전을 1.2.0에 맞 춥니 다. 마지막으로 참조에 Microsoft.VisualStudio.TestPlatform.TestFramework 및 Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions를 추가합니다.

그런 다음 모든 것이 정상이었습니다. 이것이 누군가를 돕기를 바랍니다.


.Net 4.6.1 VS2017에서이 문제에 부딪 혔습니다. 결국 1.2.0으로 롤백했습니다. 패키지 폴더 나 소스 제어에 두 가지 버전이 없는지 확인하십시오.
Jeremy Thompson

2
내 테스트를 찾은 것처럼 보였지만 "MSTest.TestAdapter"가 누락 된 것이 진짜 문제였습니다. 좋은 오류나 경고가 없습니다 (VS2017 15.8). 테스트 탐색기에 표시 되었음에도 불구하고 테스트가 발견되지 않았다는 점을 제외하고 모두 괜찮아 보였습니다 ..... 그래서 "install-package MSTest.TestAdapter"를 실행했을 때 갑자기 테스트가 예상대로 실행되었습니다. 감사 MS - 3 시간 ........... 낭비
제임스 조이스에게

1
MSTest.TestAdapter 1.4.0을 설치하면 VS 2019에서 저에게 도움이되었습니다. 덕분에 30 분만 낭비했습니다.
furman87

11

이 오류가 발생하여 해결할 수있었습니다.

  1. Visual Studio Professional 2017을 사용합니다.
  2. VS에서 도구-> 확장 및 업데이트로 이동했습니다.
  3. 메뉴 상단에서 NUnit 어댑터가 비활성화 된 것을 확인했습니다.
  4. [사용] 버튼을 클릭했습니다
  5. 오류없이 테스트를 시작할 수있었습니다.

예! 그리고 Visual Studio를 다시 시작하는 것을 잊지 마십시오. 그것은 나에게 필요했습니다.
Michael Levy

"메뉴 맨 위에"는 무슨 뜻입니까?
Sean Kendle

1
트윗 담아 가기 2 단계를 완료하면 "확장 및 업데이트"창이 나타납니다. 이 창 상단에서 NUnit 어댑터가 비활성화 된 것을 보았습니다. 이것이 명확
J Wood

감사합니다. 제가 작업중인 프로젝트에서 여전히이 작업을 수행 할 수 없었습니다. 다행히 테스트 프로젝트 였고 다음 프로젝트가 작동했습니다. 이유에 대해서는 여전히 미스터리입니다.
Sean Kendle

6

이 문제는 Visual Studio 2017에서 다시 나타납니다. 다른 버그 일 가능성이 높지만 결과는 같습니다.

작동하는 것으로 보이는 한 가지 해결 방법은 영향을받는 컴퓨터에서 Microsoft Visual Studio 2017 원격 디버거를 제거하는 것입니다.


5

.Net 4.6.2를 사용하는 VSTS에서 동일한 문제가 발생했습니다. VSTS 콘솔 출력에서 ​​이것을 볼 경우 @Sushil에서 제공하는 해결 방법은 여전히 ​​VSTS에서 작동하며 필요합니다. 불행히도 Microsoft에서 제공하는 "Test Assemblies"작업은 통과하므로 출력을 확인하고 실제로 실행 된 테스트가 하나도 발견되지 않는 한 문제가 있다는 사실조차 알 수 없습니다!

VSTS 테스트 수정


내 문제는 (온-프레미스) TFS 2015 업데이트 1에 있었고 업데이트 2로 수정되었습니다. VSTS에 동일한 문제가 존재하는지 / 존재하는지 잘 모르겠습니다.
Tore Østergaard

5
  1. NUGET 패키지에서 Nunit 및 NUnitTestAdapter 최신 버전을 설치합니다.
  2. -> 테스트-> 테스트 설정-> 기본 프로세서 아키텍처-> X64로 변경
  3. 솔루션을 구축하십시오.
  4. 그러면 단위 테스트에서 테스트 실행 및 디버거 문제가 해결되고 작동이 시작됩니다.

이것은 실제로 많은 방향과 제안으로 머리를 두드리는 후에 저에게 효과적이었습니다.
rajibdotnet

4

다단계 빌드를 사용하여 도커 내에서 테스트를 실행하고 테스트를 찾을 수없는 경우. 아래 Dockerfile 섹션과 같은 프로젝트 파일뿐만 아니라 모든 파일을 복사하십시오.

FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS build
WORKDIR /src
COPY ["MainProject/FirstApp.csproj", "MainProject/"]
COPY ["TestProject/*", "TestProject/"]

RUN dotnet restore "TestProject/TestProject.csproj"
RUN dotnet build "TestProject/TestProject.csproj" -c Release
RUN dotnet test "TestProject/TestProject.csproj" -c Release

이것은 정말로 나를 물었다. 나는 이것이 일어나고 있다는 단서가 단위 테스트 DLL을 찾았지만 어떤 테스트도 찾지 못한다는 것입니다. 또한 copy 문 뒤에이 인라인을 삽입하면 WAS가 복사 된 내용을 검사 할 수 있음을 발견했습니다 (여기서 / app / tests는 Docker 이미지의 대상 디렉터리입니다). RUN file = "$ (ls -al / app / tests) "&& 에코 $ 파일 (참조 에코에 대한 추가 정보를 원하시면이 게시물을 )
데이비드 예이츠에게

3

VS 2017 및 4.6.2 테스트 프로젝트에서 다음 단계로 문제를 해결했습니다.

  1. Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 및 확장에 대한 참조 제거
  2. Microsoft.VisualStudio.QualityTools.UnitTestFramework.Updated nuget 패키지를 설치합니다.

3

"Microsoft.NET.Test.Sdk"너겟이 설치되어 있는지 확인하십시오.


3

내가 프로젝트에 대한 NuGet 패키지와 관련된 모든 시험을 다시 설치하여이 문제를 해결 : Xunit, Xunit.runner.vistualstudio,Microsoft.Net.Test.Sdk


1

비슷한 문제가 발생하고 어떻게 든 app.config파일이 테스트 프로젝트에 추가되었음을 알았 습니다. 이 구성 파일을 제거하면 문제가 해결되었습니다.


1

TFS 2017에서 빌드 파이프 라인과 함께 .Net Core를 사용하여 실제로 테스트를 실행하지 않고 Visual Studio 테스트 단계를 통과했습니다. 다음을 포함하도록 "고급 실행 옵션"-> "기타 콘솔 옵션"단계를 편집해야했습니다.

/framework:".NETCoreApp,Version=v2.0"

(해당 필드에도 /platform:x64)


1

내 단위 테스트 클래스가 공개되지 않았기 때문에이 오류가 발생했습니다.

전의:

class ClientTests

출력 오류 :

...\bin\Debug\Tests.dll] UTA001: TestClass attribute defined on non-public class ClientTests

보정:

public class ClientTests


1

내 솔루션을 힙에 던질 것입니다. 제 경우에는 테스트 프로젝트와 함께 기존 솔루션에 몇 가지 프로젝트를 추가하고 있습니다. 우리는 MSTest를 사용하고 있습니다. 호환성 문제를 일으키는 솔루션에서 이전 UnitTest.testsettings 파일이 활성화되었습니다.

설정 파일을 클릭하면 검사가 제거되고 테스트가 성공적으로 실행되었습니다.

여기에 이미지 설명 입력


1

방법을 찾았습니다! 아마도 가장 정통적이지는 않지만 서둘러 나를 도왔습니다.

  1. 도구> NuGet 패키지 관리자에서 MSTest.TestAdapter 및 MSTest.TestAdapterFramework 패키지를 1.4.0으로 업데이트합니다.
  2. 솔루션을 청소하고 테스트를 다시 실행하십시오.

나는 버전에 특별한 것이 없다고 생각하지만 그것을 업데이트하면 솔루션 / 프로젝트에서 나쁜 참조가 무엇이든 분명히 정리됩니다.


0

이것은 이전에 @Sushil이 제시 한 솔루션을 요약하기위한 것입니다.

이는 Team Foundation Server 2015 RTM + 업데이트 1의 알려진 문제이며 업데이트 2, 참조 .

여기 에 @Sushil이 설명하는 해결 방법이 있습니다. 여기 에는 테스트 실행기를 이전 .Net 프레임 워크에 강제하는 .runsettings 파일을 추가하는 것이 포함됩니다 (직접 추가 할 때 "테스트 실행 추가 / 편집"대화 상자를 통해 지정할 필요는 없습니다. 빌드 프로세스 편집기에서 무시됩니다).


0

Visual Studio 2017에서는 NUnitTestAdapter를 제거하고 다시 설치하거나 NUnitTestAdapter.WithFramework 패키지와 같은 새 패키지를 설치하고 문제가 사라졌습니다.


0

나는 같은 문제가 있습니다. Visual Studio 2017 Community Edition을 사용하고 있습니다.

여기에 이미지 설명 입력

이 단계를 사용하여 모든 테스트 케이스를 성공적으로 발견하고 성공적으로 실행했습니다.

  • 먼저 확장 및 업데이트로 이동하여 NUnit3 테스트 어댑터를 설치합니다. 이미있는 경우 활성화하십시오.

  • Visual Studio 2017을 다시 시작
    하면 확장 을 설치 하라는 메시지가 자동으로 표시됩니다. 설치를 계속하려면 작업을 끝내라는 메시지가 표시되면
    "작업 끝내기"를 클릭 하면됩니다 .

  • 그런 다음 테스트 프로젝트를 다시 빌드하면 모든 테스트 케이스가 식별되고 이제 테스트 케이스 실행을 시작할 수 있습니다.


0

제 경우에는 Nunit3 어댑터 재설치, 임시 폴더 삭제, 아키텍처 변경 및 아무것도 작동하지 않았습니다. Daemon Resharper 때문에 문제가 발생했습니다.

Add or Remove Programs> Find Resharper > Repair > Install again > Restart VS 

그것은 문제를 해결합니다.


0

이 오류는 잘못된 반환 유형이있는 경우 비동기 테스트에서 발생할 수 있습니다. 반환 유형은 무효가 아닌 Task 여야합니다.


0

사령관에 TestAdapterPath를 추가하면 저에게 효과적입니다.

vstest.console.exe Xom.Gci.Lvf.FileParserInvoker.UnitTests.dll /TestAdapterPath:"C:\****\****\{SolutionFolder}"

먼저 테스트 케이스가 VS IDE에서 실행될 수 있는지 확인해야합니다.
dixiashi

0

제 경우에는 테스트가 발견되었지만 실행 결과 "테스트를 사용할 수 없음 ... "이 표시되고 유명합니다. "테스트 발견 자 및 실행기가 등록되어 있고 플랫폼 및 프레임 워크 버전 설정이 적절한 지 확인하고 다시 시도하십시오."

이 오류는 Visual Studio (dotnet CLI 도구 및 거의 네이 키드 UNit 테스트에서 테스트 됨)와 독립적이며 .NET 4.7.1을 대상으로 할 때만 발생했습니다. dotnetcore 앱이 제대로 작동합니다.

Nuint3 CLI로 테스트 실행 nunit3-console.exe Tests.csproj 하면 오류가 표시됩니다.

"어셈블리에 테스트가 없거나 적절한 테스트 드라이버를 찾을 수 없습니다."

오류는 테스트 어댑터가 (매핑 된) 네트워크 드라이브 또는 공유에서 찾을 수없고 로컬로 복사 하고 다시 실행 하여 해결 되었기 때문 입니다.


0

실행 해보십시오 vstest.console.exe함께 --diag:diag.txt하고 출력을 검사합니다. 나에게 그것은 내 작업 디렉토리에서 테스트 어댑터에 대한 DLL로드 실패였습니다.

TpTrace Information: 0 : 14976, 1, 2020/03/10, 15:34:22.120, 57158093583, vstest.console.exe, AssemblyResolver.OnResolve: Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter: Failed to load assembly. Reason:System.IO.FileLoadException: Could not load file or assembly 'file:///C:\Directory\Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)

File name: 'file:///C:\Directory\Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll' ---> System.NotSupportedException: An attempt was made to load an assembly from a network location which would have caused the assembly to be sandboxed in previous versions of the .NET Framework. This release of the .NET Framework does not enable CAS policy by default, so this load may be dangerous. If this load is not intended to sandbox the assembly, please enable the loadFromRemoteSources switch. See http://go.microsoft.com/fwlink/?LinkId=155569 for more information.

vstest.console.exe.config에 <loadFromRemoteSources enabled="true"/>아래 <runtime>를 추가하여이 문제를 해결했습니다.


0

MSTest를 사용합니다.

Nuget에서 MSTest.TestFramework의 최신 버전을 설치하고 OOB를 대체했습니다. Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll에 대한 참조 제거

그런 다음 최신 버전의 Microsoft.TestPlatform을 neget에서 설치했습니다.

명령으로 테스트를 실행할 수있었습니다.

".\packages\Microsoft.TestPlatform.16.6.1\tools\net451\Common7\IDE\Extensions\TestPlatform\vstest.console.exe" "UnitTestProject1\bin\Debug\UnitTestProject1.dll" /logger:trx

하지만 같은 오류가 발생했습니다. 어셈블리를 구문 분석하고 테스트를 찾는 테스트 어댑터를 지정하지 않은 오류의 근본 원인입니다.

해결책:

  1. 너겟 패키지 "MSTest.TestAdapter"설치

  2. 명령 끝에 테스트 어댑터를 지정하십시오.

    /TestAdapterPath:".\packages\MSTest.TestAdapter.2.1.2\build_common "


0

VS 2017에서 nUnit을 시도했을 때 비슷한 문제에 직면했으며 핵심 프로젝트가 아닙니다. 설치 NUnit3TestAdapter하면 문제가 해결되었습니다.


0

내 프로젝트 ( https://www.nuget.org/packages/NUnit3TestAdapter/ )에 NUnit3TestAdapter NuGet을 설치 하여이 문제를 해결했습니다 .

dotnet add package NUnit3TestAdapter --version 3.17.0

.csproj 파일

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.7.1" />
    <PackageReference Include="NUnit" Version="3.12.0" />
    <PackageReference Include="NUnit3TestAdapter" Version="3.17.0" />
    <PackageReference Include="RestSharp" Version="106.11.7" />
  </ItemGroup>

</Project>

0

이 질문은 다양한 시나리오를 가진 사람들이 분명히 발견하고 있으며, 제 대답은 Azure DevOps 에서 빌드 파이프 라인을 사용하여 .NET Core 프로젝트 에서 XUnit 테스트를 실행하는 것을 다루지 만 다른 사람들에게도 도움이 될 수 있습니다.

  • 이 답변에 따라 nuget에서 XUnit 테스트 어댑터를 설치했는지 확인하십시오 .
  • 빌드 파이프 라인의 yaml에서 단계 otherConsoleOptions: '/framework:.NETCoreApp,Version=v3.1'inputs에 추가 합니다 VSTest@2(사용중인 .NET Core 버전에 버전 번호가 설정 됨). 자세한 내용은 이 문서 를 참조하십시오.
  • 필수 사항은 아니지만 failOnMinTestsNotRun: true테스트가 전혀 실행되지 않으면 빌드 파이프 라인이 실패를보고하도록 추가하는 것이 좋습니다 .
  • 이 시점에서 빌드를 실행하면 테스트가 실행되지만 파이프 라인에서 오류가 발생 함을 알 수 The library 'hostpolicy.dll' required to execute the application was not found있습니다. 필터를 기본값 **\*test*.dll에서 **\*test.dll(제거 된 별표 참고) 또는 테스트 프로젝트의 DLL과 일치하는 다른 패턴 으로 변경하여이 문제를 해결할 수 있습니다 . 그 이유는 XUnit 이이 github 문제에testhost.dll 설명 된대로 출력 디렉토리에 호출 된 파일을 배치하기 때문입니다 .

yaml을 사용하지 않는 이전 파이프 라인을 사용하는 경우 동일한 옵션을 사용할 수 있어야합니다. 이 답변 은 프레임 워크 추가를 다루며, "최소 테스트 수가 실행되지 않으면 작업 실패"또는 이와 유사한 옵션이 있다고 가정합니다.

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