ไม่พบการทดสอบ ตรวจสอบให้แน่ใจว่าผู้ค้นพบและตัวดำเนินการทดสอบที่ติดตั้งการตั้งค่าเวอร์ชันของแพลตฟอร์มและเฟรมเวิร์กนั้นเหมาะสมแล้วลองอีกครั้ง


101

ฉันอยู่ระหว่างการอัปเกรดโซลูชันที่มีอยู่ของเราเป็น. Net 4.6.1 และไม่สามารถเรียกใช้การทดสอบหน่วยของเราในระหว่างการสร้างเซิร์ฟเวอร์ได้ พวกมันทำงานตามที่คาดไว้และพลิกเวอร์ชันของเฟรมเวิร์กกลับไปเป็น. Net 4.5.1 ทำให้รันอีกครั้งบนเซิร์ฟเวอร์

ฉันได้รับข้อผิดพลาดต่อไปนี้:

ไม่พบการทดสอบ ตรวจสอบให้แน่ใจว่าผู้ค้นพบและตัวดำเนินการทดสอบที่ติดตั้งการตั้งค่าเวอร์ชันของแพลตฟอร์มและเฟรมเวิร์กนั้นเหมาะสมแล้วลองอีกครั้ง

ฉันได้สร้างปัญหาซ้ำในการตั้งค่าที่ง่ายกว่านี้:

  • การแก้ปัญหาด้วยโครงการทดสอบหน่วย C # เดียวพร้อมการทดสอบสองครั้ง (หนึ่งครั้งล้มเหลวหนึ่งครั้งผ่าน)
  • นิยามการสร้าง XAML โดยใช้เทมเพลตเริ่มต้น (TfvcTemplate.12.xaml)
  • TFS 2015 Update 1 XAML build server ที่ติดตั้ง Visual Studio Enterprise 2015 Update 1 (มีเซิร์ฟเวอร์ที่คล้ายกันหกเครื่องและทั้งหมดให้ผลลัพธ์เดียวกัน)

อ้างอิงจาก Brian Harry จาก Microsoft นี่คือข้อบกพร่องที่พวกเขากำลังตรวจสอบอยู่ ควรได้รับการแก้ไขในอัปเดต 2 และควรโพสต์วิธีแก้ปัญหาชั่วคราวในภายหลัง ที่มา: link
Tore Østergaard

ฉันมีปัญหาเดียวกันสำหรับ. Net 3.5 SP1 ใน Visual Studio 2013 Update 5.
Andrey Bushman

@AndreyBushman: ข้อผิดพลาดอาจเกิดขึ้นใน 2013U5 ด้วยเช่นกันเนื่องจากได้รับการเผยแพร่พร้อมกับ 2015RTM แต่วิธีแก้ปัญหาก็ควรใช้ได้ในกรณีของคุณเช่นกัน
Tore Østergaard

ฉันมีปัญหาที่คล้ายกันวิธีแก้ปัญหานั้นเป็นเพียงใน vs ภายใต้การตั้งค่าการทดสอบเพื่อเลือกบิตตัวประมวลผลเริ่มต้นที่ถูกต้อง (32/64) และไม่ให้เอ็นจิ้นทำงาน (เทียบกับ 2017.x)
kfn

คำตอบ:


2

นี่เป็นปัญหาที่ทราบสำหรับ. Net 4.6 ในขณะนี้

ไม่สามารถเรียกใช้การทดสอบหน่วย. Net 4.6.x ซึ่งเป็นส่วนหนึ่งของ XAML TFS Build with TFS 2015 UPdate1 Source: https://connect.microsoft.com/VisualStudio/feedback/details/2245723

นี่คือคำถามที่คล้ายกันสำหรับการอ้างอิงของคุณ: ไม่สามารถเรียกใช้การทดสอบ. Net 4.6 Unit ของเซิร์ฟเวอร์สร้าง TFS 2015 XAML


3
สวัสดี Patrick ลิงก์ทั้งสองที่คุณให้มาเป็นกรณีที่เปิดโดยฉันดังนั้นฉันจะไม่เชื่อถือเป็นข้อมูลอ้างอิง ;-)
Tore Østergaard

60

คุณสามารถลองเปลี่ยนสถาปัตยกรรมตัวประมวลผลเริ่มต้นของคุณในการตั้งค่าการทดสอบของคุณจาก X86 เป็น X64 ในกรณีของฉันนี่คือปัญหา

x64นี้เกิดขึ้นถ้าเป้าหมายแพลตฟอร์มของโครงการของคุณภายใต้การทดสอบมีการตั้งค่า

ภาพหน้าจอของการตั้งค่าการทดสอบ


สิ่งนี้แก้ไขได้สำหรับฉัน ในกรณีของฉันทั้งโครงการที่กำลังทดสอบและโครงการทดสอบถูกตั้งค่าเป็น x86 การทดสอบไม่สามารถแก้ไขได้ แต่รันไม่สำเร็จ หลังจากที่ฉันเปลี่ยนเป็น CPU ใด ๆ การทดสอบก็ดำเนินไป
datchung

ฉันเพิ่งมีปัญหาเดียวกันและสามารถแก้ไขได้ ฉันค่อนข้างสงสัยเช่นกันว่าสิ่งนี้อาจมีผลกระทบต่อการทำงานร่วมกันที่ไม่ดีต่อการอ้างอิงโครงการหลักของฉันซึ่งหยุดโหลด DLL เฉพาะอย่างกะทันหัน แต่ยังไม่ได้ระบุผลข้างเคียงที่น่ารังเกียจนี้อย่างแน่ชัด
Allen

45

งานสร้างของฉันไม่พบการทดสอบเช่นกัน การตั้งค่าและวิธีแก้ปัญหาสำหรับการค้นหาการทดสอบของฉันมีดังนี้

ฉันใช้ VSTS (Visual Studio Team Services) และมีบิลด์ที่กำหนดค่าให้รีเฟรชแพ็กเกจ NUGET ในทุกบิลด์ ฉันใช้ NUnit และพบว่าเรียกใช้คำสั่ง NUGET ต่อไปนี้ (จากคอนโซลตัวจัดการแพ็คเกจใน Visual Studio) เพื่อเพิ่มไลบรารี NUnitTestAdapter ในโครงการทดสอบของฉันและการตรวจสอบใน package.config ทำให้การทดสอบทำงานใน VSTS บิลด์ของฉัน

Install-Package NUnitTestAdapter

ตามที่มอริซกล่าวไว้ในความคิดเห็นของโพสต์นี้สำหรับ NUnit3 ให้ใช้แพ็คเกจ NUGETต่อไปนี้(มองหายูทิลิตี้อื่น ๆ ในลิงค์เช่น dotnet CLI และ Paket CLI)

Install-Package NUnit3TestAdapter

หวังว่านี่จะช่วยได้


10
ฉันกำลังใช้ VSTS อยู่ ตามคำแนะนำฉันได้เพิ่ม NUnit3TestAdapter (เนื่องจากฉันใช้ NUnit 3.8.1) และวิธีนี้แก้ปัญหาของฉันได้ ขอบคุณ :-)
Maurice Klimek

1
ติดตั้งแพ็คเกจ NUnit3TestAdapter แก้ไขปัญหาของฉัน :)
Bimal Das

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 กับ. net core
Amna

สิ่งนี้ใช้ได้กับฉันใน Visual Studio 2017 ด้วย xunit และ. NET Core 2.1
Thorkil Værge

4
ในกรณีของฉันคือโครงการ. net 4.6.1 ดังนั้นสิ่งเดียวที่ขาดหายไปคือ xunit runner ติดตั้งและใช้งานได้
ฮวน

1
เช่นเดียวกับฮวน มีเพียงแพ็คเกจนักวิ่งเท่านั้นที่หายไป การรันสิ่งนี้ในตัวจัดการแพ็กเกจสำหรับโครงการทดสอบแก้ไขได้: install-package xunit.runner.visualstudio
Premil

12

ฉันใช้ MSTest สำหรับฉันมันเป็นเวอร์ชันที่ไม่ตรงกันและไม่มีแพ็คเกจอื่นที่เกี่ยวข้อง -

1) โฟลเดอร์แพ็คเกจของฉันมีเฉพาะแพ็คเกจ MSTest.TestFramework.1.2.1 ในไฟล์โครงการของฉัน (.csproj) การอ้างอิงใน Target Name คือแพ็คเกจ MSTest.TestAdapter.1.2.0 ซึ่งไม่มีอยู่ในโฟลเดอร์แพ็คเกจ package.config ของฉันมีการอ้างอิงถึง MSTest.TestFramework.1.2.0 ด้วย

2) ดังนั้นฉันจึงติดตั้ง MSTest.TestAdapter.1.2.0 จากตัวจัดการแพ็คเกจ nuget และปรับรุ่น 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) ทุกอย่างดูดียกเว้นไม่พบการทดสอบแม้ว่าจะปรากฏในตัวสำรวจการทดสอบก็ตาม ..... ดังนั้นเมื่อฉันทำการ "ติดตั้งแพ็คเกจ MSTest.TestAdapter" ทันใดนั้นการทดสอบของฉันก็ดำเนินไปตามที่คาดไว้ ขอบคุณ MS - 3 ชั่วโมงที่เสียไป ...........
James Joyce

1
การติดตั้ง MSTest.TestAdapter 1.4.0 ทำเพื่อฉันใน VS 2019 ฉันเสียเวลาเพียง 30 นาทีขอบคุณคุณ
furman87

11

ฉันได้รับข้อผิดพลาดนี้และสามารถแก้ไขได้

  1. ฉันใช้ Visual Studio Professional 2017
  2. ใน VS ฉันไปที่ Tools -> Extensions And Updates
  3. ที่ด้านบนของเมนูฉันสังเกตเห็นว่าอะแดปเตอร์ NUnit ของฉันถูกปิดใช้งาน
  4. ฉันคลิกปุ่ม [เปิดใช้งาน]
  5. ฉันสามารถเริ่มการทดสอบได้โดยไม่มีข้อผิดพลาด

ใช่ และอย่าลืมรีสตาร์ท Visual Studio ที่จำเป็นสำหรับฉัน
Michael Levy

"ที่ด้านบนสุดของเมนู" หมายความว่าอย่างไร?
Sean Kendle

1
@SaiyajinGohan. หลังจากที่คุณทำขั้นตอนที่ 2 เสร็จแล้วหน้าต่าง "Extensions and Updates" จะปรากฏขึ้น ที่ด้านบนของหน้าต่างนี้ฉันเห็นอะแดปเตอร์ NUnit ถูกปิดใช้งาน หวังว่านี่จะกระจ่าง ....
J Wood

ขอบคุณที่ฉันยังไม่สามารถทำงานกับโปรเจ็กต์ที่กำลังทำอยู่ได้ โชคดีที่เป็นโครงการทดสอบและโครงการถัดไปได้ผล ยังคงเป็นปริศนาว่าทำไม
Sean Kendle

6

ปัญหานี้เกิดขึ้นสำหรับ Visual Studio 2017 อีกครั้ง ส่วนใหญ่จะเป็นข้อผิดพลาดอื่น แต่ผลลัพธ์เดียวกัน

วิธีแก้ปัญหาอย่างหนึ่งที่ดูเหมือนจะใช้ได้ผลคือการถอนการติดตั้ง Microsoft Visual Studio 2017 Remote Debugger จากเครื่องที่ได้รับผลกระทบ


5

ฉันพบปัญหาเดียวกันใน VSTS กับ. Net 4.6.2 หากคุณเห็นสิ่งนี้จากเอาต์พุตคอนโซล VSTS ของคุณวิธีแก้ปัญหาโดย @Sushil ยังคงใช้งานได้ใน VSTS และจำเป็น น่าเสียดายที่งาน "Test Assemblies" ที่จัดทำโดย Microsoft ผ่านดังนั้นคุณจึงไม่รู้ด้วยซ้ำว่ามีปัญหาเว้นแต่คุณจะตรวจสอบผลลัพธ์และไม่พบว่าการทดสอบของคุณดำเนินการจริง!

แก้ไขการทดสอบ VSTS


ปัญหาของฉันเกิดจาก (ในองค์กร) TFS 2015 Update 1 และได้รับการแก้ไขด้วยการอัปเดต 2 ฉันไม่แน่ใจว่ามีปัญหาเดียวกันกับ VSTS หรือไม่
Tore Østergaard

5
  1. ติดตั้ง Nunit และ NUnitTestAdapter เวอร์ชันล่าสุดจากแพ็คเกจ NUGET
  2. ไปที่ -> ทดสอบ -> การตั้งค่าการทดสอบ -> สถาปัตยกรรมตัวประมวลผลเริ่มต้น -> เปลี่ยนเป็น X64
  3. สร้างโซลูชัน
  4. วิธีนี้จะแก้ไขปัญหา Run Test and Debugger ในการทดสอบหน่วยและจะเริ่มทำงาน

สิ่งนี้ได้ผลจริงสำหรับฉันหลังจากที่กระแทกหัวของฉันในหลายทิศทางและคำแนะนำ
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

นี่กัดฉันแน่ ๆ ฉันคิดว่าเบาะแสที่เกิดขึ้นคือมัน FINDS หน่วยทดสอบ DLL แต่ไม่พบการทดสอบใด ๆ ในนั้น ฉันยังพบว่าการใส่สิ่งนี้ไว้ในบรรทัดหลังคำสั่งคัดลอกของคุณจะช่วยให้คุณตรวจสอบเพื่อดูว่า WAS ที่คัดลอกมา (ที่นี่ / app / การทดสอบคือไดเร็กทอรีเป้าหมายของคุณบนอิมเมจ Docker): RUN file = "$ (ls -al / app / testing) "&& echo $ file (ดูโพสต์นี้สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ echo )
David Yates

3

ฉันแก้ไขปัญหานี้ตามปัญหาในโครงการทดสอบ VS 2017 และ 4.6.2 ด้วยขั้นตอนต่อไปนี้:

  1. ลบการอ้างอิงถึง Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll และส่วนขยาย
  2. ติดตั้งแพคเกจ Microsoft.VisualStudio.QualityTools.UnitTestFramework.Updated nuget


3

ฉันคงปัญหานี้โดยการติดตั้งการทดสอบทั้งหมดที่เกี่ยวข้องแพคเกจ NuGet สำหรับโครงการ: Xunit, Xunit.runner.vistualstudio,Microsoft.Net.Test.Sdk


1

ฉันได้รับปัญหาที่คล้ายกันและสังเกตเห็นว่าapp.configมีการเพิ่มไฟล์ลงในโครงการทดสอบของฉัน การลบไฟล์กำหนดค่านี้แก้ไขให้ฉัน


1

การใช้. Net Core กับ build pipeline ใน TFS 2017 ขั้นตอน Visual Studio Test ของฉันผ่านไปโดยไม่ได้ดำเนินการทดสอบใด ๆ ต้องแก้ไขขั้นตอน "ตัวเลือกการดำเนินการขั้นสูง" -> "ตัวเลือกคอนโซลอื่น ๆ " เพื่อรวม:

/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. อัปเดตแพ็คเกจ MSTest.TestAdapter และ MSTest.TestAdapterFramework เป็น 1.4.0 จาก Tools> NuGet Package Manager
  2. ทำความสะอาดโซลูชันและเรียกใช้การทดสอบอีกครั้ง

ฉันไม่คิดว่าจะมีอะไรเป็นพิเศษกับเวอร์ชันนี้ แต่การอัปเดตจะเป็นการล้างข้อมูลอ้างอิงที่ไม่ดีในโซลูชัน / โครงการ


0

นี่เป็นเพียงการสรุปวิธีแก้ปัญหาที่ @Sushil นำมาก่อนหน้านี้

นี่เป็นปัญหาที่เป็นที่รู้จักกันในทีม Foundation Server 2015 RTM + 1 การปรับปรุงและจะได้รับการแก้ไขในการปรับปรุงที่ 2 อ้างอิง

มีวิธีแก้ปัญหาที่อธิบายโดย @Sushil ที่นี่ซึ่งรวมถึงการเพิ่มไฟล์. runsettings ที่บังคับให้นักวิ่งทดสอบไปใช้. Net framework ที่เก่ากว่า (โปรดอย่าว่าคุณต้องระบุผ่านกล่องโต้ตอบ "เพิ่ม / แก้ไขการทดสอบการทดสอบ" เป็นการเพิ่มโดยตรง ในตัวแก้ไขกระบวนการสร้างจะถูกละเว้น)


0

ใน Visual Studio 2017 ฉันเพิ่งถอนการติดตั้งและติดตั้ง NUnitTestAdapter ใหม่หรือติดตั้งแพ็คเกจใหม่เช่นแพ็คเกจ NUnitTestAdapter WithFramework และปัญหาก็หายไป


0

ฉันมีปัญหาเดียวกัน ฉันใช้ Visual Studio 2017 Community Edition

ป้อนคำอธิบายภาพที่นี่

ฉันใช้ขั้นตอนเหล่านี้เพื่อค้นหากรณีทดสอบทั้งหมดของฉันสำเร็จและเรียกใช้งานได้สำเร็จ:

  • ก่อนอื่นไปที่ส่วนขยายและการอัปเดตติดตั้ง NUnit3 Test Adapter หากคุณมีอยู่แล้วเพียงแค่เปิดใช้งาน

  • รีสตาร์ท Visual Studio 2017 ของคุณระบบจะแจ้งให้
    ติดตั้งส่วนขยายของคุณโดยอัตโนมัติหากมีข้อความแจ้งว่าให้ยุติภารกิจเพื่อทำการ
    ติดตั้งต่อเพียงคลิก "สิ้นสุดงาน"

  • หลังจากนั้นให้สร้างโครงการทดสอบของคุณใหม่และตอนนี้กรณีทดสอบทั้งหมดจะถูกระบุและคุณสามารถเริ่มเรียกใช้กรณีทดสอบของคุณ


0

ในกรณีของฉันติดตั้ง Nunit3 Adapter ใหม่การลบโฟลเดอร์ temp การเปลี่ยนสถาปัตยกรรมและไม่มีอะไรทำงาน เป็นเพราะ Daemon Resharper ทำให้เกิดปัญหา

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

ที่ช่วยแก้ปัญหา


0

ข้อผิดพลาดนี้อาจเกิดขึ้นสำหรับการทดสอบ async หากคุณมีประเภทการส่งคืนที่ไม่ถูกต้อง ประเภทการส่งคืนควรเป็นงานไม่ใช่โมฆะ


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.

ฉันแก้ไขสิ่งนี้โดยการเพิ่มด้าน<loadFromRemoteSources enabled="true"/>ล่าง<runtime>ใน vstest.console.exe.config


0

ฉันใช้ MSTest

ฉันติดตั้งจาก Nuget เวอร์ชันล่าสุดของ MSTest.TestFramework และแทนที่ OOB Remove การอ้างอิงไปยัง Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

จากนั้นติดตั้งจากเวอร์ชันล่าสุดของ Microsoft.TestPlatform

อนุญาตให้ฉันทำการทดสอบด้วยคำสั่ง:

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

แต่ฉันได้รับข้อผิดพลาดเดียวกัน สาเหตุหลักของข้อผิดพลาดที่ฉันไม่ได้ระบุอะแด็ปเตอร์ทดสอบซึ่งแยกวิเคราะห์แอสเซมบลีและค้นหาการทดสอบ

วิธีการแก้:

  1. ติดตั้งแพคเกจ nuget "MSTest.TestAdapter"

  2. ระบุอะแด็ปเตอร์ทดสอบในส่วนท้ายของคำสั่ง:

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



0

ฉันแก้ไขปัญหานี้โดยติดตั้งNUnit3TestAdapter NuGet ลงในโปรเจ็กต์ของฉัน ( https://www.nuget.org/packages/NUnit3TestAdapter/ )

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

เห็นได้ชัดว่าคำถามนี้ถูกพบโดยผู้ที่มีสถานการณ์ต่างๆคำตอบของฉันจะครอบคลุมถึงการเรียกใช้การทดสอบXUnitในโครงการ. NET Coreโดยใช้ build pipeline บนAzure DevOpsแต่อาจช่วยผู้อื่นได้เช่นกัน

  • ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งอะแด็ปเตอร์ทดสอบ XUnit จาก nuget ตามคำตอบนี้
  • ใน Yaml สำหรับไปป์ไลน์บิลด์ของคุณให้เพิ่มotherConsoleOptions: '/framework:.NETCoreApp,Version=v3.1'ในขั้นตอนinputsของคุณVSTest@2(พร้อมกับหมายเลขเวอร์ชันที่กำหนดเป็นเวอร์ชันของ. NET Core ที่คุณใช้) ดูเอกสารนี้สำหรับข้อมูลเพิ่มเติม
  • แม้ว่าจะไม่บังคับ แต่ฉันขอแนะนำให้เพิ่มfailOnMinTestsNotRun: trueเพื่อที่ build pipeline จะรายงานความล้มเหลวหากรันการทดสอบเป็นศูนย์
  • ถ้าคุณเรียกใช้สร้างที่จุดนี้คุณอาจพบว่าการทดสอบของคุณทำงานได้ The library 'hostpolicy.dll' required to execute the application was not foundแต่ท่อแล้วให้ข้อผิดพลาด คุณสามารถแก้ปัญหานี้ได้โดยเปลี่ยนตัวกรองจากค่าเริ่มต้น**\*test*.dllเป็น**\*test.dll(สังเกตเครื่องหมายดอกจันที่ถูกลบออก) หรือรูปแบบอื่น ๆ ซึ่งจะตรงกับ DLL ของโครงการทดสอบของคุณ เหตุผลของเรื่องนี้ก็คือว่า xUnit วางไฟล์ที่เรียกว่าtesthost.dllในไดเรกทอรีที่ส่งออกตามที่อธิบายในประเด็นนี้ GitHub

หากคุณใช้ท่อรุ่นเก่าที่ไม่ใช้มันแกวควรมีตัวเลือกเดียวกันนี้ คำตอบนี้ครอบคลุมถึงการเพิ่มเฟรมเวิร์กฉันคิดว่าจะมีตัวเลือก "ล้มเหลวในการทำงานหากไม่มีการทดสอบจำนวนขั้นต่ำ" หรือสิ่งที่คล้ายกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.