Visual Studio 2013 ไม่ค้นพบการทดสอบหน่วย


146

ฉันมีทางออกง่าย ๆ ใน visual studio 2013 ที่ประกอบด้วยโครงการเว็บหนึ่งโครงการห้องสมุดหนึ่งโครงการและโครงการทดสอบหน่วยหนึ่ง เมื่อฉันเปิดโซลูชันและลองเรียกใช้การทดสอบหน่วยพวกเขาจะไม่ค้นพบด้วย Visual Studio เมื่อต้องการเรียกใช้การทดสอบฉันพยายามไปที่เมนูและเลือกทดสอบ -> เรียกใช้ -> เรียกใช้การทดสอบทั้งหมดหรือโดยการเปิดหน้าต่างทดสอบ explorer โดยวิธีการที่สตูดิโอภาพไม่พบการทดสอบใด ๆ ในการแก้ปัญหา

การสร้างโครงการทดสอบหน่วยง่าย ๆ ครั้งแรกและพยายามทำการทดสอบ Visual Studio รู้ว่าค้นพบการทดสอบและฉันสามารถรันได้ จากนั้นถ้าฉันเปิดโซลูชัน Visual Studio ก่อนหน้านี้ฉันจะค้นพบการทดสอบทั้งหมด ฉันพยายามบันทึกโซลูชันของฉัน แต่ปิดและเปิดใหม่โดยไม่ต้องสร้างโครงการทดสอบหน่วยแรกสตูดิโอภาพไม่พบการทดสอบอีกครั้ง นี่เป็นพฤติกรรมที่แปลกมากที่ฉันไม่รู้ว่าทำไมสิ่งนี้ถึงเกิดขึ้น

ฉันเคยทำงานคนเดียวในโครงการนี้ซึ่งใช้คอมไพล์คอนโทรลที่รวมเข้ากับรากฐานทีม Visual Studio ปัญหาของ visual studio ไม่พบการทดสอบหน่วยเริ่มต้นเมื่อองค์ประกอบใหม่เข้ามาในโครงการและเมื่อฉันต้องการสร้างโซลูชันใหม่ผ่านทางแหล่งควบคุมออนไลน์ ก่อนหน้านี้การทดสอบทั้งหมดจะถูกค้นพบโดย Visual Studio เสมอ

สำหรับการสร้างการทดสอบหน่วยฉันใช้ dll Microsoft.VisualStudio.QualityTools.UnitTestFramework Visual Studio รุ่นของฉันคือ: Microsoft Visual Studio Express 2013 สำหรับเวอร์ชันเว็บ 12.0.30723.00 อัพเดต 3. เวอร์ชัน. net Framework ของฉันคือ 4.5.50938

การทดสอบของฉันทั้งหมดเป็นเช่นนี้:

[TestClass] 
public class Service1Test 
{ 
    [TestMethod] 
    public void Test1() 
    {
        Assert.IsTrue(True); 
    } 
}

2
การทดสอบตามหน่วย Async เหล่านี้หรือไม่
Jamie Keeling

ไม่แน่ใจว่าปัญหาคืออะไร แต่การเรียกใช้ในฐานะผู้ดูแลระบบได้แก้ไขปัญหาให้ฉันแล้ว
Sriram Sakthivel

การทดสอบตามหน่วยการซิงค์ทั้งหมด
miguelbgouveia

2
คุณเคยลองใช้ผู้ทดสอบภายนอก (เช่น ReSharpers หรือ NCrunch) หรือไม่ บางทีการติดตั้งของคุณอาจถูกบั๊ก (ดังนั้นควรติดตั้ง VS)
Carsten

1
สิ่งเหล่านี้ไม่ได้รับการแก้ไขปัญหาสำหรับผม :( สิ่งที่เกิดภัยพิบัติที่ฉันได้รับค่า NUnit และกำลังอาศัย UnitTestFramework -. พิกลปัญหาตรงข้ามจากสหกรณ์
อดัม

คำตอบ:


210

บางสิ่งที่ฉันสังเกตเห็นฉันต้องทำเป็นครั้งคราวเพื่อรับการทดสอบเพื่อแสดงอย่างถูกต้อง

  1. หากโซลูชันของคุณอยู่ในไดรฟ์ที่มีการป้องกันซึ่งคุณต้องมีสิทธิ์การเข้าถึงระดับผู้ดูแลระบบในการอ่าน / เขียนบางครั้งมีเพียงส่วนหนึ่งของการทดสอบ เรียกใช้ VS อย่างแน่นอนในฐานะผู้ดูแลในกรณีนั้น

  2. หากโซลูชันของคุณคือ 64 บิตตรวจสอบให้แน่ใจว่าการทดสอบ> การตั้งค่าการทดสอบ> สถาปัตยกรรมตัวประมวลผลเริ่มต้นถูกตั้งค่าเป็น x64 บางครั้งมันก็ถูกตั้งค่าเป็น x86 ตั้งเป็น x64 จากนั้นสร้างใหม่

  3. บางครั้งการรีสตาร์ท Visual Studio ก็เป็นการหลอกลวงเพราะผู้ทดสอบจะเริ่มขึ้นอีกครั้ง

  4. อย่าลืมสร้างโครงการทดสอบ / โซลูชันจริง (หากคุณต้องการให้สร้างขึ้นด้วยส่วนที่เหลือของโครงการให้คลิกขวาที่โซลูชันของคุณ> คุณสมบัติ> คุณสมบัติการกำหนดค่า> การกำหนดค่า> เลือกช่อง "สร้าง" สำหรับโครงการทดสอบของคุณ)

  5. ตรวจสอบให้แน่ใจว่าการทดสอบอยู่ในpublicส่วนของคลาสการทดสอบของคุณ


34
ฉันรู้ว่าคำตอบนี้ช้าไปนิดหน่อย แต่การค้นหาโดย Google ของฉันทำให้ฉันมาที่นี่ ในที่สุดฉันก็พบว่ามันเป็นอันดับที่ 2 ในรายการของฉันดังนั้นฉันจึงต้องการที่จะออกความรู้นั้นบวกกับเทคนิคอื่น ๆ ที่ฉันได้รับเมื่อเวลาผ่านไป
AndyG

7
การรวมกันของ # 2 และ # 3 ทำเพื่อฉัน Visual Studio บ่นเกี่ยวกับโครงการ (ที่ไม่ใช่การทดสอบ) จำนวนหนึ่งในโซลูชันของฉันที่ไม่รวมอยู่ในขั้นตอนการค้นพบการทดสอบเพราะพวกเขาสร้างขึ้นสำหรับ x86 แต่นั่นก็ใช้ได้
Nate Barbettini

4
ฉันพบว่าการตั้งค่าของฉันถูกต้องทั้งหมดและการรีสตาร์ทไม่ทำงาน สิ่งที่แก้ไขปัญหาให้ฉันได้ก็คือการสร้างวิธีแก้ปัญหา ฉันรู้ว่านี่อาจดูเหมือนเป็นใบ้ แต่ไม่ชัดเจนว่าจำเป็น ฉันไม่เห็นเอกสารอย่างเป็นทางการใด ๆ ที่กล่าวถึงขั้นตอนนี้
1807768

6
ฉันมีปัญหาเดียวกันใน VS2015 # 2 แก้ไขปัญหาให้ฉัน
mcolegro

2
ฉันไม่รู้ว่าทำไมคนจ่ายเงินมากสำหรับผลิตภัณฑ์ที่ล้มเหลวบ่อยครั้ง ฉันต้องอัพเกรดโครงการเป็น 2558 และทำ # 3 2 ครั้งก่อนที่จะค้นพบการทดสอบของฉัน
Matthew Hoggan

81

หากคุณใช้ NUnit ตรวจสอบให้แน่ใจว่าได้ดาวน์โหลด NUnit Adapter ก่อน

ไปที่เครื่องมือ→ส่วนขยายและการอัพเดท…→ออนไลน์→ค้นหา "NUnit Test Adapter"


2
ฉันใช้ UnitTests จาก Microsoft ในกรณีนี้ฉันคิดว่าไม่จำเป็นต้องติดตั้งอะไร
miguelbgouveia

1
สิ่งนี้ทำเพื่อฉัน - จำเป็นมาก
Matas Vaitkevicius

นั่นแก้ไขให้ฉัน ขอบคุณ
jjthebig1

Upvoted เช่นเดียวกับแก้ไขปัญหา แต่จำเป็นต้องมีอะแดปเตอร์ NUnit หรือ Visual Stdio ทำงานร่วมกับ NUnit นอกกรอบได้
Owain Glyndŵr

คุณคือพระเจ้าครับ
Nox

61

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

นอกจากนี้บางครั้งหากคุณไม่มีการยืนยันหรือคุณไม่ได้ตกแต่งการทดสอบด้วย a [TestMethod]การทดสอบอาจไม่เป็นที่รู้จัก

อีก 2 สิ่ง: 1) การทดสอบหน่วย Async ทำตัวให้ดีที่สุดและไม่มีเลยเลย ลองดูที่บทความนี้โดยสตีเฟ่นเคลียร์และเก็บจากที่นั่นถ้าคุณสนใจ

2) หากคุณใช้ NUnit และคุณพบปัญหาเดียวกันโปรดระลึกไว้เสมอว่า[TestCase]สำหรับ Nunit แทนที่จะเป็น[TestMethod]

นี่คือบทความที่ฉันโพสต์ไว้ในโปรเจคโค้ดโดยมีทั้งMSTest& NUnitในกรณีที่คุณต้องการให้มันหมุนและทำให้แน่ใจว่าคุณจะไม่พลาดอะไรเลย


1
การทดสอบของฉันทั้งหมดเป็นเช่นนี้: [TestClass] public class ServicesUtilsTest {[TestMethod] public void Test1 () {Assert.IsTrue (True); }}
miguelbgouveia

ไม่ชัดเจนมาก วางไว้ในการป้องกันรหัสในคำถามของคุณจึงสามารถเข้าใจได้ :)
Noctis

การทดสอบทั้งหมดของฉันสำหรับการซิงค์รหัสและฉันคิดว่าปัญหาของฉันไม่ได้อยู่ในรหัสการทดสอบหน่วย แต่ใน Visual Studio บางครั้งก็ไม่พบการทดสอบ
miguelbgouveia

ลองใช้สิ่งนี้แทน:using Microsoft.VisualStudio.TestTools.UnitTesting;
Noctis

1
ฉันใช้ Microsoft.VisualStudio.TestTools.UnitTesting อยู่แล้ว namespace นี้มีการกำหนดไว้ใน dll Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
miguelbgouveia

28

ฉันมีปัญหาเดียวกัน แต่ไม่มีวิธีแก้ไขปัญหาอื่นทำงาน ปรากฎว่าฉันใช้เฟรมเวิร์ก NUnit 3 กับอะแด็ปเตอร์ 2

หากคุณใช้ NUnit 3 ให้ไปที่ส่วนขยายและอัพเดตและติดตั้งอะแดปเตอร์ทดสอบ NUnit3


มันพูดแบบนี้ในคำอธิบายของแพ็คเกจ Nuget แต่ถ้าคุณชอบฉันและไม่อ่านฉันหวังว่าสิ่งนี้จะช่วยได้: "แพคเกจนี้รวมถึงแอสเซมบลีเฟรมเวิร์ก NUnit 3.0 ซึ่งอ้างอิงโดยการทดสอบของคุณคุณจะต้องติดตั้ง nunit- รุ่น 3.0 โปรแกรมคอนโซลหรือนักวิ่งบุคคลที่สามที่รองรับ NUnit 3.0 เพื่อทำการทดสอบนักวิ่งที่มีจุดประสงค์เพื่อใช้กับ NUnit 2.x จะไม่สามารถทำการทดสอบ 3.0 ได้อย่างถูกต้อง "
Frank

ในกรณีของฉันฉันรู้ว่ามันมีส่วนเกี่ยวข้องกับการอัพเดท NUnit3 แต่การทดสอบของฉันผ่านไปหนึ่งชุดและคนอื่นไม่เห็น เมื่อตรวจสอบอย่างใกล้ชิดมีข้อยกเว้นจำนวนมากในผลลัพธ์แม้ว่าการทดสอบทั้งหมดจะผ่าน
Rich Shealer

นี่เป็นกรณีสำหรับฉันด้วย ฉันเรียกใช้ nuget "update-package" โดยไม่ทราบว่าได้รับการอัปเดตจาก NUnit 2.x เป็น 3.x
Jens

ขณะนี้ไม่พบอะแดปเตอร์ทดสอบ NUnit 3.0 ผ่าน NuGet (ดูNUnit 3.0 Wiki ) มันสามารถติดตั้งให้เป็นส่วนเสริมได้
vauhochzett

1
ขอบคุณมากแฟรงค์ มันแก้ไขปัญหาของฉัน ตอนนี้ผมสามารถเห็นผลการทดสอบหน่วยในคอนโซลหน้าต่าง :)
santosh kumar Patro

12

ฉันมีปัญหานี้เป็นครั้งคราว สิ่งที่ดีสำหรับฉันคือการปิด Visual Studio และไปที่โฟลเดอร์:

%LocalAppData%\Microsoft\VisualStudio\12.0\ComponentModelCache

และลบเนื้อหา

เมื่อคุณเปิด Visual Studio และโหลดโครงการของคุณอีกครั้ง Test Explorer ควรมีการทดสอบของคุณกลับมา


สำหรับฉันที่ไม่ทำงาน ฉันใช้ Visual Studio 2013 Express พร้อมติดตั้งอัปเดต 5 เมื่อเร็ว ๆ นี้ ยังไม่มีการทดสอบหน่วยที่ปรากฏ
miguelbgouveia

นี่คือสิ่งที่คนงานของฉัน ทำงานได้โดยไม่ต้องรีสตาร์ท Visual Studio ชั่วโมงลงท่อระบายน้ำในที่สุดก็มีที่สิ้นสุด
Stephan Ryer

ไดเรกทอรีนี้ไม่มีอยู่ใน VS2017 อีกต่อไป
Noel Widmer

ขอบคุณมันทำงานได้ดีสำหรับฉันสำหรับทุกคนของโฟลเดอร์นี้สามารถมีรุ่นที่แตกต่างกันขึ้นอยู่กับการติดตั้งสตูดิโอภาพเหมือนสำหรับฉันมัน%LocalAppData%\Microsoft\VisualStudio\16.0_03b7a93c\ComponentModelCache
Ravi Kumar Mistry

12

ผู้ใช้ XUnit อาจสังเกตเห็นหน้าต่างทดสอบ Explorer ไม่แสดงรายการการทดสอบใด ๆ อีกต่อไป ในการทำให้ค้นพบการทดสอบอีกครั้งให้ลองใช้เคล็ดลับสำคัญนี้โดยไฮไลต์ด้านล่าง

หากคุณมีปัญหาในการค้นหาหรือเรียกใช้การทดสอบคุณอาจตกเป็นเหยื่อของแคชนักวิ่งที่เสียหายภายใน Visual Studio เมื่อต้องการล้างแคชนี้ให้ปิดอินสแตนซ์ทั้งหมดของ Visual Studio แล้วลบโฟลเดอร์% TEMP% \ VisualStudioTestExplorerExtensions ตรวจสอบให้แน่ใจว่าโครงการของคุณเชื่อมโยงกับแพ็คเกจ NuGet Visual Studio Runner รุ่นเดียว (xunit.runner.visualstudio)

พิมพ์ TEMP เพื่อค้นหาโฟลเดอร์เป้าหมาย


สิ่งนี้ไม่ได้ผลสำหรับฉัน นักทดสอบการทดสอบไม่พบการทดสอบของฉันและเท่าที่ฉันสามารถบอกได้ว่าฉันไม่ได้ทำผิดและฉันได้ลองวิธีการแก้ปัญหาบางอย่างที่นี่โดยไม่ประสบความสำเร็จ
Skychan

ใช้ MsTestV2 - นี่เป็นสิ่งเดียวที่แก้ไขปัญหา
นาธาน

5

สำหรับชาว Google ในอนาคตฉันมีสถานการณ์ที่เกิดขึ้นได้ยาก

ในคลาสทดสอบพื้นฐานของฉันฉันมีคุณสมบัติชื่อ TestContext สิ่งนี้รบกวนคุณสมบัติ TestContext ที่สงวนไว้ของ MSTest ซึ่งทำให้การทดสอบทั้งหมดของฉันถูกซ่อนจาก VS / Resharper ยกเว้นหนึ่ง (ซึ่งไม่ได้สืบทอดจากฐาน)


1
รับฉันด้วย! publicฉันลืมที่จะทำให้ทรัพย์สินบริบทการทดสอบ
escape-llc

4

สำหรับฉันแล้วมันเปลี่ยน 'การกำหนดค่าโซลูชัน' เป็น Debug (แทน Release)


4

ปัญหาของฉันเป็นเพราะวิธีการทดสอบหน่วยของฉันไม่เป็นโมฆะและได้รับพารามิเตอร์


ทุกสิ่ง .... นี่คือปัญหาของฉันและบิต params สมเหตุสมผล ท้ายที่สุดแล้วระบบการทดสอบจะรู้ได้อย่างไรว่าผ่านไปได้บ้าง? วิธีแก้ปัญหาคือการสร้างวิธีการทดสอบที่คุณเรียกวิธีการที่คุณต้องการทดสอบด้วยตนเอง หากคุณกำลังทดสอบโครงการ WebAPI และรับกับ params คุณยังต้องรับสายที่ตรงกัน แต่จะไม่แสดงใน explorer
MetalPhoenix

4

ฉันพบว่าวิธีทดสอบหน่วยที่ทำเครื่องหมายว่าasync voidไม่ถูกค้นพบโดย VS Test Explorer สิ่งนี้น่าจะเป็นเพราะ VS จะไม่มีทางที่จะรอให้การทดสอบเสร็จสิ้นและตัดสินใจว่าจะสำเร็จหรือไม่ async Taskถ้าคุณอย่างจะต้องมีวิธีการทดสอบแบบไม่พร้อมที่จะทำงานแล้วได้รับมันจะกลับมาเป็นเหมือนงานแทน ฉันพบว่าสิ่งนี้ได้แก้ไขปัญหาสำหรับฉันแล้ว


1
นี่ไม่ได้ตอบคำถามข้างต้น แต่นี่เป็นปัญหาที่ฉันพยายามแก้ไข ดังนั้นคุณจึงได้รับอุบัติเหตุ +1 :) ขอบคุณมาก!
CF

3

ลองสร้างโครงการทั้งหมดเป็น MSIL (CPU ใด ๆ ) แทน x86 / x64 ทำงานให้ฉันอย่างประหลาด


ฉันแค่ต้องสร้างโครงการทดสอบโดยใช้ CPU ใด ๆ โครงการอื่น ๆ ยังคงอยู่ x64
Eduardo Brites

1
ในทางเทคนิค C # / VB.NET จะคอมไพล์เป็น MSIL เสมอ การตั้งค่าโครงการ "x86", "x64" หรือ "Any CPU" (และในรุ่นที่ใหม่กว่า "Prefer 32- บิต") เป็นเพียงแฟล็กที่ด้านบนของ EXE / DLL จุดยังคงยืนอยู่แม้ว่า; NUnit จะไม่แสดงรายการการทดสอบที่ไม่สามารถโหลดลงในเอ็นจินการเรียกใช้งานได้เนื่องจากมีการทำเครื่องหมายว่าต้องการให้สถาปัตยกรรมเฉพาะทำงาน
Jonathan Gilbert

3

ในขณะที่วิธีการแก้ปัญหาของ AndyG ทำงานได้ดีกว่าวิธีแก้ปัญหาที่ยาวนานกว่าคือการตั้งค่าตัวแปรสภาพแวดล้อม PreferredToolArchitecture เป็น "x64" โดย:

วิธีการทำให้ Visual Studio ใช้ toolchain amd64 ดั้งเดิม

หรือโดย:

  • แผงควบคุม | ระบบและความปลอดภัย | ระบบ | การตั้งค่าระบบขั้นสูง | ตัวแปรสภาพแวดล้อม
  • PreferredToolAr Architecture = x64
  • DefaultToolArchitecture = Native64Bit
  • PROCESSOR_ARCHITECTURE = x64
  • ProcessorAr Architecture = x64

2

ฉันประสบปัญหาเดียวกันและฉันจำได้อีกครั้ง (สถานการณ์นี้เกิดขึ้นก่อนหน้านี้) ว่าการเลือก "แพลตฟอร์มแบบผสม" บนเมนูแพลตฟอร์มโซลูชันทำงานได้ดีเท่ากับคำตอบอื่น ๆ


แต่เมนูแพลตฟอร์มโซลูชันอยู่ที่ไหน นั่นคือใน Visual Studio หรือไม่ ฉันใช้ Visual Studio Express 2013 สำหรับเว็บและฉันไม่พบเมนูนั้น
miguelbgouveia

2

ฉันจัดการเพื่อเพิ่มของฉันเป็น

public static void TestMethod1(){}

เริ่มทำงานเมื่อฉันลบสแตติก ....



1

ไปที่เมนูโครงการ> เครื่องมือจัดการการกำหนดค่าตรวจสอบแพลตฟอร์มโครงการทดสอบของคุณตรงกับส่วนที่เหลือของโครงการและตรวจสอบเพื่อสร้างแล้วสร้างใหม่


1
ฉันไม่มีตัวเลือกเครื่องมือจัดการการกำหนดค่าในเมนูโครงการของฉัน ฉันสามารถค้นหาตัวเลือกคุณสมบัติโครงการได้เท่านั้น ฉันเป็นแพลตฟอร์มของโครงการทดสอบหน่วยและมันก็เหมือนกับโครงการอื่น ๆ ดังนั้นสำหรับฉันวิธีนี้ใช้ไม่ได้
miguelbgouveia

กำหนด "ตรงกับส่วนที่เหลือของโครงการ"
ควบรวมกิจการ

1

เพิ่งพบเจอสิ่งนี้และฉันไม่เห็นกรณีที่คล้ายกันซึ่งคล้ายกับของฉัน

ใน.csprojไฟล์ของโครงการทดสอบของฉันความเป็นส่วนตัวของการอ้างอิง NUnit ถูกกำหนดเป็นFalse:

<Reference Include="nunit.framework, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
  <HintPath>..\packages\NUnit.2.6.4\lib\nunit.framework.dll</HintPath>
  <Private>False</Private>
</Reference>

หลังจากที่ผมตั้งค่า<Private>การTrueทำงาน


1

คุณเพียงแค่ต้องติดตั้งแพคเกจนี้เท่านั้น:

NUnit TestAdapter NUnit TestAdapter


ฉันรู้ว่าการใช้กรอบการทดสอบหน่วยอื่นจะแก้ไขปัญหาของฉัน แต่ถ้าฉันต้องการใช้กรอบการทดสอบหน่วยของ Microsoft ต่อไปนั่นไม่ใช่วิธีแก้ปัญหา
miguelbgouveia

1

ในการรับการทดสอบเพื่อแสดงในหน้าต่างทดสอบ Explorer ฉันต้องติดตั้ง NUnit3 Test Adapter 3.0 ซึ่งไม่สามารถใช้ได้ใน Package Manager

ดาวน์โหลดจากhttps://visualstudiogallery.msdn.microsoft.com/0da0f6bd-9bb6-4ae3-87a8-537788622f2d


ฉันใช้ UnitTests จาก Microsoft ในกรณีนี้ฉันคิดว่าไม่จำเป็นต้องติดตั้งอะไร
miguelbgouveia

1

ฉันมีปัญหาเดียวกันแน่นอน

เป็นเพราะรุ่นที่เข้ากันไม่ได้ของ NUnit ที่ฉันเพิ่มลงในโครงการของฉัน (3.2.0) และทดสอบอะแดปเตอร์ที่ฉันติดตั้ง (2.0.0)

ในการแก้ไขให้ใช้ "เครื่องมือ> ส่วนขยายและการอัพเดท" และค้นหา NUnit3 Test Adapter มันค้นพบการทดสอบของฉันหลังจากนั้น

ไชโย


ฉันไม่ได้ใช้ NUnit
miguelbgouveia

1

สมมติว่าเป็นเพราะอาร์กิวเมนต์ที่คุณต้องใช้สถาปัตยกรรม X64 ในโครงการทดสอบของคุณเพื่อให้การพึ่งพาสร้างอย่างถูกต้อง (เช่นในกรณีของฉัน) คุณอาจจำเป็นต้องปรับเปลี่ยนการประมวลผลเริ่มต้นของคุณสถาปัตยกรรมภายใต้การทดสอบ - การตั้งค่าการทดสอบเมนู การตั้งค่านี้เป็น X64 อนุญาตให้ผู้ทดสอบของฉันค้นหาการทดสอบของฉันโดยใช้ Microsoft.VisualStudio.TestTools.UnitTesting


1

ขออภัยที่เพิ่มลงในรายการที่มีความยาว แต่ฉันมีปัญหาแตกต่างไปจากเดิมอย่างสิ้นเชิง ก่อนอื่นฉันอยากจะพูดถึงว่าฉันค้นพบปัญหาของฉันเมื่อคลิก 'Run All' ใน Test Explorer แล้วดูหน้าต่างผลลัพธ์ของ build ใน Visual Studio คุณต้องดูมันอย่างจริงจังหลังจากนั้นข้อความก็จะหายไป

สำหรับปัญหาดูเหมือนว่าในระหว่างการสแกนการทดสอบ DLL ที่ได้รับการโหลดและประเภทการทดสอบที่มีการแจกแจง ซึ่งทำให้การอ้างอิงที่จะโหลดและหากความล้มเหลวใด ๆ เกิดขึ้นในระหว่างกระบวนการนี้การทดสอบจะไม่ปรากฏใน explorer ฉันมีปัญหาสองประการที่ทำให้ไม่สามารถโหลด DLL ทดสอบได้สำเร็จ:

  • ยังคงมีการเชื่อมโยงการเปลี่ยนเส้นทางที่เหลืออยู่ในไฟล์กำหนดค่า (การเปลี่ยนเส้นทางไปยังเวอร์ชันที่ต่ำกว่ารุ่น NHiberate กว่าที่อ้างอิงในโครงการทดสอบ)
  • การอ้างอิงแอสเซมบลีที่ขัดแย้งกัน (การอ้างอิงระดับที่ 2 ไม่สามารถโหลดได้) AsmSpyเป็นเครื่องมือที่ยอดเยี่ยมในการค้นหาสิ่งเหล่านี้

ฉันกำลังเผชิญปัญหาเดียวกันมีเวลายากในการค้นหาที่กำลังโหลดไม่ ....
amarnath chatterjee

1

หากคุณโหลดโซลูชัน Visual Studio (ชุมชน VS ในกรณีของฉัน) จากเครือข่ายที่แชร์หรือไดเรกทอรีเอกสารของฉันที่เป็นส่วนหนึ่งของการแชร์คุณจะประสบปัญหานี้ ฉันแก้ไขมันโดยการย้ายโซลูชันและโครงการพื้นฐานไปยังโฟลเดอร์ในเครื่อง


1

หลังจากใช้เวลา 2 วัน ... ไม่มีข้อใดข้อหนึ่งสำหรับฉัน "โซลูชัน" เดียวเท่านั้น: ไปที่คุณสมบัติโครงการ -> สร้างแท็บ จากนั้นคลิกปุ่มขั้นสูงที่มุมล่างขวาของบานหน้าต่าง เปลี่ยน "ข้อมูลการดีบัก:" เป็น "เต็ม" และคลิกตกลง

นี่คือภาพหน้าจอ: ป้อนคำอธิบายรูปภาพที่นี่

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


0

ฉันเจอปัญหาเดียวกัน และตรวจสอบและพบว่า dll ที่ไม่ได้สร้างและใส่ในโฟลเดอร์ที่เหมาะสม ทันทีที่ฉันเปลี่ยนการกำหนดค่าของพวกเขาพวกเขาปรากฏ - ตัวเลือกการสร้างโครงการควรใช้โฟลเดอร์ใด? - การกำหนดค่าการสร้างรายการเมนูสร้างพวกเขาควรจะตรวจสอบ

ที่แก้ไขให้ฉัน


สำหรับฉันแล้ว dll สำหรับการทดสอบก็ไม่ได้ถูกสร้างขึ้นเพราะ visual studio ไม่พบการทดสอบใด ๆ ที่กำหนดไว้ ฉันใช้ Visual Studio Express และฉันไม่มีรายการเมนู Build แต่ในเครื่องมือจัดการการกำหนดค่าของฉันฉันได้ตรวจสอบตัวเลือกบิลด์ทั้งหมดแล้ว ดังนั้นฉันคิดว่านั่นไม่ใช่ปัญหาสำหรับกรณีของฉัน
miguelbgouveia

@miguelbgouveia เป็นวิธีอื่น ๆ - VS สร้าง DLLs แล้วสแกนหาการทดสอบ ดังนั้นหากคุณไม่มีโครงการทดสอบที่กำลังทำงานอยู่คุณจะไม่พบการทดสอบแน่นอน

0

สำหรับ Visual Studio 2013.5 การล้างไดเรกทอรี \ TestResults ในโซลูชันช่วย Visual Studio ทำให้ไฟล์ mdf เสียหายซึ่งจัดเก็บการทดสอบที่ค้นพบดังนั้นจึงป้องกันการค้นพบการทดสอบหน่วย


1
มันเป็นทางออกของโครงการของคุณ คลิกขวาที่ไฟล์โครงการของคุณใน Solution Explorer -> เปิดโฟลเดอร์ใน File Explorer ไปที่ไดเร็กทอรีหนึ่งจากนั้นและลบไดเร็กทอรี / TestResults คุณอาจต้องปิด Visual Studio เพื่อลบทุกอย่าง มันจะสร้างไดเรกทอรีในครั้งต่อไปที่เปิดโครงการ
MartijnK

0

ตรวจสอบให้แน่ใจว่าโครงการทั้งหมดของคุณทำงานด้วยการกำหนดค่าเดียวกัน ภายใต้คุณสมบัติของโครงการ => Debug => แพลตฟอร์มในรายการดรอปดาวน์เลือกแพลตฟอร์มที่เหมาะสม (สำหรับฉันมันคือ "CPU ใด ๆ ") ตามที่กำหนดไว้ในโครงการอื่นของคุณ


0
  • ฉันรู้ว่าไม่พบการทดสอบหน่วยหากโซลูชันไม่ได้ถูกสร้างขึ้นดังนั้นจึงเป็นสิ่งที่ควรลอง (สร้างโซลูชัน) แต่โซลูชันนั้นเป็นเหมือนโต๊ะช่วยเหลือถามว่าคอมพิวเตอร์ของคุณเสียบอยู่หรือไม่
  • หลังจากการสร้างใหม่ทั้งหมดไม่สามารถแก้ไขปัญหาให้ฉันได้การเรียกใช้การสร้างแบบเต็มชุดไม่สามารถแก้ไขได้

0

มีปัญหาเดียวกัน; การทดสอบหยุดทันทีถูกค้นพบ

Nunit Test Adapter ปิดใช้งานอย่างใด การคลิกเปิดใช้งานในตัวจัดการส่วนขยายได้แก้ไขให้ฉัน


0

ฉันมีปัญหาเดียวกันจนกระทั่งฉันรู้ว่าฉันทำผิดพลาดตัด / วางแล้วออก[Test Method]ก่อนการทดสอบ


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