การทดสอบหน่วย NUnit ไม่แสดงใน Test Explorer เมื่อติดตั้ง Test Adapter


145

ฉันได้ติดตั้ง NUnit Test Adapter สำหรับ VS2012 + 2013 เมื่อฉันติดตั้งครั้งแรกการทดสอบของอะแดปเตอร์ก็ปรากฏขึ้น แต่พวกเขาก็หยุดแสดงผลด้วยเหตุผลบางอย่างในวันนี้ หลังจากสร้างสร้างใหม่ทำความสะอาดเริ่มใหม่ไม่มีอะไรปรากฏใน Test Explorer ทำไมสิ่งนี้ถึงเกิดขึ้น ฉันใช้ VS2013 Ultimate


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

@ChaseFlorell ไม่เป็นเช่นนั้น ฉันเห็นแถบสีเขียวใน Test Explorer เริ่มต้นแล้วจากนั้นหยุดการแยกในภายหลัง
RobVious

คุณมีเครื่องมือทดสอบอื่น ๆ ที่อาจรบกวนหรือไม่ ฉันใช้ R # เพื่อเรียกใช้การทดสอบของฉันและฉันใช้ VS2012 ดังนั้นฉันจึงไม่ได้มีสภาพแวดล้อมที่ดีพอ ฉันรู้ว่าเมื่อฉันปิดหน้าต่างหรือเรียกใช้ชุดย่อยของการทดสอบต้นไม้ทดสอบเต็มจะหายไป
Chase Florell

คุณสามารถลองยกเลิกการโหลดโครงการทดสอบสร้างใหม่แล้วโหลดใหม่ ...
Chase Florell

@ChaseFlorell ฉันมี R # แต่มันช้าเหมือนกากน้ำตาลที่มีการทดสอบ NUnit ... และมันก็ทำงานก่อนที่จะน่าผิดหวัง ฉันจะลองขนถ่าย
RobVious

คำตอบ:


87

หากโครงการทดสอบของคุณถูกตั้งค่าให้กำหนดเป้าหมายเป็นแพลตฟอร์ม 64 บิตการทดสอบจะไม่ปรากฏใน NUnit Test Adapter


54
อาจเป็นไปได้ว่าจำเป็นต้องจับคู่สถาปัตยกรรมที่ระบุในเมนูที่การทดสอบ -> การตั้งค่าการทดสอบ -> สถาปัตยกรรมตัวประมวลผลเริ่มต้น
Brannon

6
@ Brannon มันทำ หากตั้งค่าเป็น x64 จะเห็นการทดสอบในโครงการ x64
พื้นฐาน

2
มีบางสิ่งที่โง่กว่าเกิดขึ้นที่นี่ - ลืมที่จะเพิ่มแอตทริบิวต์ [Test] ในวิธีทดสอบของฉัน :)
Nikolai

ปัญหานี้ยังคงปรากฏอยู่ในอะแดปเตอร์ทดสอบ NUnit 3 ดูโซลูชันของ Simoyd เกี่ยวกับสถาปัตยกรรมอะแดปเตอร์ทดสอบ (x64 vs x86)
บาร์ต

1
นี่เป็นคำตอบที่ไม่ถูกต้อง ในการเรียกใช้การทดสอบให้เลือก "ทดสอบ" -> "การตั้งค่าการทดสอบ" -> "สถาปัตยกรรมตัวประมวลผลเริ่มต้น" -> "x64"
Andrew Rondeau

182

หากคุณกำลังใช้เวอร์ชัน NUnit3 +จะมีอะแดปเตอร์ทดสอบใหม่ให้ใช้งาน

ไปที่ "เครื่องมือ -> ส่วนขยายและการอัพเดท -> ออนไลน์" และค้นหา"NUnit3 Test Adapter"แล้วติดตั้ง


พิเศษ +1 เพราะสิ่งนี้ได้แก้ไขปัญหาของมาตรวัดการครอบคลุมรหัสหายไป
Aidanapword

หากไฟร์วอลล์พร็อกซีปิดกั้น URL ผ่านทางส่วนขยายและการอัปเดตให้ใช้ URL นี้เพื่อดาวน์โหลดอะแดปเตอร์ marketplace.visualstudio.com/...
Yawar Murtaza

โปรดทราบว่าคุณอาจต้องปิดการใช้งานอะแดปเตอร์ทดสอบ NUnit2
Mark Pattison

อะไรคือความแตกต่างระหว่างการใช้วิธีนี้และการรับจากผู้จัดการแพคเกจ NuGet
octavian

ใช้ NuGet คุณจะสามารถเข้าถึง API ของ nunit การใช้วิธีนี้คุณจะสามารถเรียกใช้การทดสอบบน Test Explorer (โดยค่าเริ่มต้นจะเรียกใช้การทดสอบ MS เท่านั้น)
Ricardo França

57

ชุดทดสอบของฉันคือ 64- บิต จากแถบเมนูที่ด้านบนของ visual studio 2012 ฉันสามารถเลือก 'ทดสอบ' -> 'ทดสอบการตั้งค่า' -> 'สถาปัตยกรรมตัวประมวลผลเริ่มต้น' -> 'X64' หลังจาก 'สร้างโซลูชันใหม่' จากเมนู 'Build' ฉันสามารถดูการทดสอบทั้งหมดของฉันใน test explorer หวังว่านี่จะช่วยคนอื่นในอนาคต = D


3
ตรวจสอบให้แน่ใจว่าคุณตรวจสอบสถาปัตยกรรมของแอสเซมบลีและโปรแกรมของคุณ แม้ว่าแพลตฟอร์มสำหรับโซลูชันหรือโครงการของคุณอาจถูกกำหนดเป็น x64 อย่างชัดเจนหากสถาปัตยกรรมการทดสอบของคุณไม่ตรงกันคุณจะมีปัญหาในการเรียกใช้การทดสอบ
Dodzi Dzakuma

30

ตรวจสอบรุ่นที่ไม่ตรงกันของ NUnit อะแดปเตอร์ทดสอบ NUnit ที่มีอยู่ในปัจจุบันใช้ได้เฉพาะกับ NUnit เวอร์ชัน 2.6.4 และด้านล่าง หากต้องการดาวน์เกรด NUnit จากเวอร์ชัน 3.x ให้ไปที่ Package Manager Console> update-package NUnit -version 2.6.4

http://jeremybytes.blogspot.co.ke/2015/11/review-of-unit-testing-makes-me-faster.html


6
คุณได้แก้ไขปัญหาของฉันอย่างแม่นยำแล้ว! ขอบคุณ! มีแพ็คเกจ nuget ชื่อ NUnitTestAdapter.WIthFramework ที่ใช้งานได้!
TheAkhemist

ฉันมีปัญหาคล้ายกันกับรุ่น NUnit ที่ไม่ตรงกัน การทดสอบของฉันบางส่วน (แต่ไม่ใช่ทั้งหมด) ไม่แสดงใน Test Explorer ดังนั้นฉันจึงลองใช้คำแนะนำทุกชนิดเช่นการอัปเดตการ์ดทดสอบ NUnit ก่อนหน้านี้ฉันเคยอัปเกรด NUnit จาก 3.6.1 เป็น 3.7.1 แต่ด้วยเหตุผลบางประการโครงการของฉันยังคงอ้างอิง nunit.framework.dll รุ่น 3.6.1 ในขณะที่ทุกอย่างอ้างอิง 3.7.1 ฉันอัปเดตการอ้างอิงถึง 3.7.1 และนี่เป็นการหลอกลวง จนถึงการทดสอบของฉันไม่ได้หายไป ไขว้นิ้วเอาไว้!
jrupe

23

ในสถานการณ์ของฉัน 'ตัวปรับต่อการทดสอบ NUnit3' ถูกปิดใช้งาน หากต้องการเปิดใช้งานใหม่ให้ไปที่เมนู

เครื่องมือ -> ส่วนขยายและการอัปเดต ...

ทางด้านซ้ายให้เลือก 'ติดตั้งแล้ว' -> 'ทั้งหมด'

ที่มุมบนขวาของการค้นหา 'nunit'

หากคุณติดตั้ง 'NUnit3 Test Adapter' ด้วยรายการที่พบคุณสามารถเปิด / ปิดการใช้งานได้

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


2
สำหรับฉันมันไม่ทำงาน พยายามถอนการติดตั้งและทำท่าว่าจะหายไป แต่มันอยู่ที่นั่นหลังจากรีสตาร์ท ฉันพบว่าฉันติดตั้ง NUnit เป็นผู้ใช้มาตรฐานแล้วลองถอนการติดตั้งในฐานะผู้ดูแลระบบ VS ไม่ได้พูดอะไรเกี่ยวกับเรื่องนี้ ... ดังนั้นโซลูชันจึงลองเปิดใช้งานโดยไม่มีสิทธิ์ผู้ดูแลระบบหรือกลับกัน
Tom

10

คำตอบนี้ดูเหมือนจะค่อนข้างเรียบง่าย แต่ไม่ชัดเจนสำหรับฉันในตอนแรก หากคุณสร้างโซลูชันขึ้นใหม่จะสร้างเฉพาะโครงการที่กำหนดค่าให้สร้างในBuild -> Configuration Manager

นี่เป็นปัญหาของฉันฉันต้องเปลี่ยนการตั้งค่าการกำหนดค่าบิลด์หรือสิ่งที่ทำให้โครงการทดสอบของฉันไม่ได้ตั้งใจ (เมื่อก่อนหน้านี้) ดังนั้นTest Explorerหน้าต่างก็ดูที่กำลังที่ล้าสมัย เป็นที่ชัดเจนสำหรับฉันนี่เป็นกรณีหลังจากทำCleanและเห็นการทดสอบส่วนใหญ่ของฉันหายไปและไม่กลับมาหลังจากrebuild... การตรวจสอบเพิ่มเติมของbinโฟลเดอร์แสดงให้เห็นว่าโครงการเหล่านี้ไม่ได้ถูกสร้างขึ้นเลย


แม้ว่าโครงการทั้งหมดจะถูกตั้งค่าให้สร้างในเครื่องมือจัดการการกำหนดค่า แต่ฉันต้องสร้างแต่ละโครงการทดสอบด้วยตนเองเพื่อให้การทดสอบปรากฏขึ้นอีกครั้ง
Noel Widmer

ฉันสร้างโครงการทดสอบด้วยตนเอง นั่นไม่เพียงพอ ฉันต้องทำในสิ่งที่คำตอบนี้พูด
Jared

10

ฉันมีการตั้งค่าการทำงาน (สำหรับ NUnit2 และ NUnit3 ขึ้นอยู่กับวิธีแก้ปัญหาและ Visual Studio หลายรุ่นระหว่าง 2012 และ 2017) และหยุดทำงานทันทีในวันหนึ่ง: ไม่พบการทดสอบใด ๆ ในโซลูชันหรือรุ่น VS

%localappdata%\Temp\VisualStudioTestExplorerExtensionsในกรณีของฉันมันจะช่วยลบ หลังจากรีสตาร์ท VS ทุกอย่างทำงานเหมือน แต่ก่อน


10

หากคุณใช้VS 2017 และ. net coreดังที่กล่าวไว้ที่นี่คุณควรเพิ่มการอ้างอิงถึงกรอบการทดสอบNUnit 3.6.1ไปยังนักทดสอบการทดสอบNUnit3TestAdapter 3.8.0-alpha1และการทดสอบ SDK Microsoft.NET.Test.Sdk 15.0.0


3
ฉันไม่ได้ใช้. NET Core แต่ติดตั้งอะแดปเตอร์ทดสอบ NUnit เมื่อฉันย้ายไปยัง VS2017 แก้ปัญหาให้ฉันแล้ว
Ciaran Gallagher

8
  1. เครื่องมือ
  2. ผู้จัดการแพคเกจ NuGet
  3. จัดการแพคเกจ NuGet สำหรับโซลูชัน
  4. หมวด
  5. NUnitTestAdapter.WithFramework
  6. Ctrl + R, A เพื่อสร้าง / เรียกใช้การทดสอบ

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

การใช้ NUnitTestAdapter.WithFramework ทำให้แน่ใจว่ามีความไม่สอดคล้องกันเล็กน้อย / ไม่ข้ามเวอร์ชันของ NUnit และ NUnit Adaptor (เช่น "ใช้งานได้")


สำหรับฉันมันเริ่มทำงานหลังจากที่อะแดปเตอร์ปรับปรุงเป็น NUnitAdapter3 (เมนู VS -> เครื่องมือ -> ส่วนขยายและอัปเดต ... ) + อัปเดตหน้า NuGet สำหรับ NUnit จาก 2.6.3 เป็น 3.2.1 ขอบคุณ!
smily

1
นี่คือสิ่งเดียวที่ทำงานให้ฉัน - ต้องเป็น "WithFramework" หนึ่ง (ไม่ใช่แค่อะแดปเตอร์มาตรฐาน)
Mani5556

4

ตรวจสอบว่าคุณได้ระบุ [TestFixureSetUp] และ [Test]

ในชั้นทดสอบ

ตัวอย่าง:

namespace ClassLibrary1
{
   public class SimpleCalculator
   {
      public Calculator _calculator;
      [TestFixtureSetUp]
      public void initialize()
      {
         _calculator = new Calculator();
      }
      [Test]
      public void DivideTest()
      {
         int a = 10;
         int b = 2;
         int expectedValue = a/b;
         int actualValue = _calculator.Divide(a, b);
         Assert.AreEqual(expectedValue, actualValue, "Functionality not working properly!");
      }
   }   
}

1
TestFixtureSetup ดูเหมือนจะล้าสมัยดีกว่าคือ <NUnit.Framework.OneTimeSetUp>
Jochen

1

ผมต้องถอนการติดตั้งแล้วติดตั้งใหม่xunit.runner.visualstudioแพคเกจ nuget ฉันลองทำสิ่งนี้หลังจากลองทำตามคำแนะนำทั้งหมดข้างต้นดังนั้นอาจเป็นเพราะส่วนผสมของสิ่งต่าง ๆ


1

อีกสาเหตุหนึ่งของปัญหานี้คือถ้าคุณเปิดโครงการจากไดรฟ์ที่แมป - Visual Studio จัดการโครงการดังกล่าวอย่างถูกต้อง แต่เห็นได้ชัดว่า Nunit ไม่สนับสนุนพวกเขา

การคัดลอกโครงการไปที่ทางกายภาพแก้ไขปัญหา


0

ฉันยังพบว่าเมื่อฉันถอนการติดตั้ง nunit v3.2.1 การอ้างอิงกรอบงาน nunit สำหรับ v3.2.1 ยังคงอยู่ในโครงการของฉันในตัวสำรวจโซลูชัน Solution Explorer> ProjectName > การอ้างอิง

หากคุณคลิกขวามันจะแสดงเวอร์ชัน ลบสิ่งนี้จากนั้นคลิกขวาที่การอ้างอิง> เพิ่มการอ้างอิง

ค้นหาเวอร์ชัน 2.x และเพิ่มจากนั้นสร้างโซลูชันใหม่

ที่ทำงานให้ฉัน!


0

ฉันประสบปัญหาที่กล่าวถึงโดย op

กรณีของฉันคือฉันถูกส่งโครงการเก่าและการทดสอบเป็นส่วนหนึ่งของระบบภายใต้การทดสอบ ฉันคิดว่าพวกเขาใช้ตัวทดสอบภายนอก

สายงานนี้แก้ไขปัญหาให้ฉัน

  • สร้างโครงการทดสอบ
  • ย้ายไฟล์ทดสอบที่นั่น
  • เพิ่มการอ้างอิงเพื่อที่โครงการทดสอบจะรวบรวม
  • เพิ่ม Nunit และ Nunit อะแดปเตอร์แพคเกจ NuGet ในโครงการทดสอบ
  • คอม

ฉันสามารถทำการทดสอบ Nunit ได้สำเร็จ


0

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


0

ฉันมีปัญหาที่คล้ายกันซึ่งการทดสอบที่ไม่ถูกค้นพบ ฉันมีเวอร์ชันที่ถูกต้องของ NUnit เวอร์ชันที่ตรงกันระหว่าง NUnit และอะแด็ปเตอร์และการทดสอบที่ติดแท็กอย่างถูกต้อง ฉันใช้ VS 2017 Enterprise ไม่ใช่ผู้ดูแลระบบ หลังจากเริ่มต้น VS ในฐานะผู้ดูแลระบบการทดสอบจะปรากฏขึ้น


0

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


0

ฉันมีปัญหานี้ด้วย แต่สาเหตุนั้นแตกต่างกัน ฉันใช้ VS2017 กับ F # 4.0

ประการแรกคอนโซลใน Visual Studio ไม่ได้ให้รายละเอียดเพียงพอแก่คุณว่าทำไมจึงไม่พบการทดสอบ มันจะล้มเหลวในการโหลด DLL ด้วยการทดสอบ ดังนั้นให้ใช้ NUnit3console.exe บนบรรทัดคำสั่งเนื่องจากจะให้รายละเอียดเพิ่มเติมแก่คุณ

ในกรณีของฉันมันเป็นเพราะอะแดปเตอร์ทดสอบกำลังมองหา F # Core DLL รุ่นใหม่ (4.4.1.0) (F # 4.1) ในขณะที่ฉันยังใช้ 4.4.0.0 (F # 4.0) ดังนั้นฉันเพิ่งเพิ่มสิ่งนี้ลงใน app.config ของโครงการทดสอบ: -

  <dependentAssembly>
    <assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="4.4.0.0" />
  </dependentAssembly>

ie เปลี่ยนเส้นทางไปยัง F # core ก่อนหน้า


0

ฉันมีปัญหาเดียวกันเมื่อการทดสอบใด ๆ ไม่ปรากฏขึ้นในหน้าต่างทดสอบ Explorer ฉันมี "NUnit3TestAdapter รุ่นที่อัปเดตแล้ว"

และหลังจากการค้นหาและความพยายามมากมายฉันพบว่าฉันต้องการตั้งค่าต่อไปนี้ในคุณสมบัติโครงการ: [ในหน้าต่างโซลูชัน Explorer: คลิกขวาที่โครงการ> คุณสมบัติ] ภายใต้แท็บสร้างตั้งแพลตฟอร์ม = x64 และตั้งค่าแพลตฟอร์มเป้าหมาย = x86 หรือ CPU Build ใด ๆ ในโครงการและการทดสอบทั้งหมดจะปรากฏในหน้าต่าง Test Explorer

หมายเหตุสำคัญ: ฉันมาหาวิธีแก้ไขหลังจากเห็นข้อความ msg ถัดไปในหน้าต่างแสดงผล:

"การทดสอบการทำงานจะใช้ DLL (s) ที่สร้างขึ้นสำหรับ Framework Framework45 และแพลตฟอร์ม X86 การติดตาม DLL จะไม่เป็นส่วนหนึ่งของการทำงาน: AutomationTests.dll ถูกสร้างขึ้นสำหรับ Framework Framework45 และแพลตฟอร์ม X64"


0

ฉันมีกระบวนการ msbuild.exe ที่หยุดทำงาน ฉันไม่ทราบว่าเป็นปัญหาของฉันหรือไม่ แต่ฉันใช้เวลามากและมีข้อผิดพลาดในการติดตั้งอะแดปเตอร์ NUnit ต่างๆก่อนที่ฉันจะพบกระบวนการที่หยุดทำงาน


0

เพียงแค่เพิ่ม $ 0.02 ของฉันที่นี่ฉันพบปัญหาที่คล้ายกันเมื่อวานนี้ที่การทดสอบของฉันหายไป 168 ครั้ง ฉันพยายามทุกอย่างมากที่สุดในโพสต์นี้ - โดยเฉพาะอย่างยิ่งทำให้แน่ใจว่าเวอร์ชันของฉันของ NUnit เหมือนกัน - ทั้งหมดไม่มีประโยชน์ ฉันจำได้ว่าฉันแบ่งการทดสอบออกเป็นเพลย์ลิสต์ และสิ่งเหล่านี้ไม่ได้ปรับปรุงโดยอัตโนมัติเมื่อคุณเพิ่มการทดสอบใหม่ ดังนั้นเมื่อฉันลบเพลย์ลิสต์BAM! การทดสอบทั้งหมดของฉันกลับมาอีกครั้ง


-1

ตรวจสอบให้แน่ใจว่าการทดสอบของคุณถูกทำเครื่องหมายอย่างถูกต้องด้วยแอตทริบิวต์การทดสอบ หากการทดสอบทั้งหมดถูกทำเครื่องหมายด้วยแอตทริบิวต์ Explicit เท่านั้น TestAdapter จะไม่รู้จักการติดตั้ง

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