NUnit ไม่ได้เรียกใช้โค้ด Visual Studio 2010


98

ฉันพยายามโหลด Visual Studio 2010 beta dll ลงใน NUnit GUI ฉันได้รับข้อผิดพลาดป๊อปอัป

แอสเซมบลีนี้สร้างขึ้นโดยรันไทม์ที่ใหม่กว่ารันไทม์ที่โหลดในปัจจุบันและไม่สามารถโหลดได้ คุณอาจกำลังพยายามโหลดแอสเซมบลีบิลด์ด้วย CLR เวอร์ชันที่ใหม่กว่ากว่าเวอร์ชันที่ NUnit กำลังทำงานอยู่

ฉันจะบังคับให้ปฏิบัติการทำงานภายใต้. NET 4 ได้อย่างไร


คำถามนี้เกี่ยวข้องกับรหัส VS 2010 หรือ. NET 4 จริงหรือไม่ - ฉันกำลังมองหาเครื่องมือที่ช่วยให้ฉันเรียกใช้การทดสอบ NUNIT ใน Visual Studio 2010 และคำถามนี้ทำให้เข้าใจผิด
Nicolas Irisarri

@Nicolas - หมายถึง. NET 4.0
Daniel

คำตอบ:


132

ฉันดาวน์โหลดซอร์ส NUnit 2.5 และเปิดโซลูชัน VS2008 ใน VS2010 เบต้า เมื่อการแปลงเสร็จสิ้นฉันเปิดโครงการทั้งหมดและเปลี่ยนการตั้งค่ากรอบเป้าหมายสำหรับโครงการทั้งหมดเป็น ".NET Framework 4.0" จากนั้นฉันสร้างโซลูชันโดยไม่มีข้อผิดพลาดใด ๆ ตอนนี้ฉันสามารถใช้แอป NUnit GUI เพื่อเรียกใช้การทดสอบที่สร้างขึ้นสำหรับ. NET 4.0 ได้แล้ว ฉันไม่ได้ทำการทดสอบโครงสร้างนี้อย่างละเอียดถี่ถ้วนดังนั้นอาจมีปัญหา แต่สำหรับจุดประสงค์ของฉันมันใช้งานได้ดี

อัปเดต: ไม่จำเป็นต้องสร้าง NUnit ใหม่ ฉันค้นพบว่าหากคุณเพิ่มสิ่งต่อไปนี้ลงในไฟล์กำหนดค่า NUnit ที่เกี่ยวข้องคุณสามารถเรียกใช้ dll ทดสอบที่สร้างขึ้นสำหรับ. NET 4.0

ภายใต้ <configuration> เพิ่ม:

<startup>
  <supportedRuntime version="v4.0.30319" />
</startup>

และภายใต้ <runtime> เพิ่ม:

<loadFromRemoteSources enabled="true" />

3
โอเคการอัปเดตการกำหนดค่าทำให้ใช้งานได้ แต่ฉันต้องใช้ version = "v4.0.21006" สำหรับแท็ก requiredRuntime
mkmurray

4
BTW ตำแหน่งเริ่มต้นของไฟล์กำหนดค่าคือ: C: \ Program Files \ NUnit 2.5.3 \ bin \ net-2.0 \ nunit.exe.config การเพิ่มตัวเลือกเหล่านั้นในการกำหนดค่าได้ผลสำหรับฉัน
Brad Irby

2
ไม่สามารถทำให้สิ่งนี้ทำงานกับ Nunit + .net4 RTM ล่าสุดได้ ฉันเพิ่มรายการที่แนะนำไปยัง nunit-console.exe.config แต่ฉันได้รับ: System.ArgumentException: เฟรมเวิร์ก net-4.0 ไม่พร้อมใช้งานพยายามกับเวอร์ชันข้างต้น + v4.0.30319 ฉันใช้ 2008 R2 x64
Andreas Öhlund

1
สำหรับคอนโซลรันเนอร์ให้เปลี่ยนคอนฟิกตามที่กล่าวไว้ แต่ใช้ v4.0.30319 สำหรับ. NET 4.0 เวอร์ชัน RTM นอกจากนี้ให้รันด้วยอาร์กิวเมนต์บรรทัดคำสั่งนี้: /framework=4.0.30319
Lance Fisher

1
ฉันโชคดีที่ใช้ตัวเลือกบรรทัดคำสั่ง /framework:net-4.0.30319 แทนที่จะเปลี่ยนการกำหนดค่า สิ่งนี้มีประโยชน์มากดังนั้นฉันจึงสามารถควบคุมได้ว่าแอปพลิเคชันใดใช้ 4.0 CLR และไม่ใช้
Kevin Crowell

25

เมื่อเปิดตัว. NET 4 ฉันใช้

<supportedRuntime version="v4.0.30319" />

ใน NUnit 2.5.4 exe.config แทน requiredRuntime และแท็ก loadFromRemoteResources ดังที่แสดงด้านบนและทั้งหมดทำงานได้ดี ขอบคุณ!


17

คุณไม่ต้องแก้ไขไฟล์ใด ๆ

เพียงแค่เปิดไฟล์นี้และทุกอย่างจะทำงานได้ดี

C: \ Program Files (x86) \ NUnit 2.5.10 \ bin \ net-2.0 \ nunit-x86.exe


ขอบคุณ - ไขคดีของฉัน ต้องใช้แม่ชีเวอร์ชัน x86 สำหรับการทดสอบหน่วยที่คอมไพล์ x86 คำเตือนเวอร์ชัน CLR เป็นปลาชนิดหนึ่งสีแดง ใช้แม่ชี 2.5.10.
Nigel Touch

เหมือนกันที่นี่ต้องใช้เวอร์ชัน x86
gavin

12

ในNUnit 2.5.5คุณสามารถระบุอ็อพชัน/framework=net-4.0ในบรรทัดคำสั่งและเข้ากันได้กับแอสเซมบลีใหม่ที่สร้างขึ้นด้วย VS2010 รุ่นล่าสุด


3
ฉันไม่เคยได้รับสิ่งนี้ในการทำงาน ฉันเคยเห็นคนใช้ /framework:net-4.0.30319 และรูปแบบอื่น ๆ ทุกประเภท จะดีถ้าพวกเขารวมตัวเลือกจริงไว้ในเอกสารของไซต์
Jason Short

2
@ Jason ดูเหมือนว่าจะใช้งานได้กับเวอร์ชันคอนโซลเท่านั้น เวอร์ชัน GUI ไม่มีตัวเลือกนี้
Roman Starkov

+1 สำหรับการกล่าวว่าสิ่งนี้ใช้งานได้ตั้งแต่เวอร์ชัน 2.5.5! ฉันมี NUnit ขว้าง ArgumentExceptions และ NullReferenceExceptions บนเครื่องของฉันเครื่องหนึ่งและปรากฎว่าเป็นเพราะเวอร์ชัน 2.5.0
realMarkusSchmidt

2

โซลูชันที่นำเสนอทำงานได้ดีในการทำให้ NUnit ทำงาน น่าเสียดายที่เมื่อฉันไปถึงขั้นตอนการครอบคลุมรหัสของฉัน NCover เริ่มให้ฉัน:

สิ้นสุดกระบวนการทำโปรไฟล์แล้ว ไม่ได้สร้างการเชื่อมต่อ Profiler

ทางออกที่ดีที่สุดที่ฉันพบคือใช้ NUnit เวอร์ชัน "-x86" กับ NCover:

NCover.Console.exe nunit-console-x86.exe - พารามิเตอร์แบบดั้งเดิม -

ใช้งานได้แล้ว


1
ขอบคุณสำหรับสิ่งนี้ฉันกำลังประสบปัญหาเดียวกันการแก้ไขของคุณแก้ไขได้แล้ว!
CubanX

2

หากต้องการค้นหาเวอร์ชัน. net 4 ของคุณจาก Visual [C # 2010 Express หรือที่เคย] ให้ไปที่ "เกี่ยวกับ" ของแอปพลิเคชัน Visual ใต้รายการวิธีใช้ของเมนู ควรจะแสดงเป็นเวอร์ชันภายใต้บรรทัด Microsoft .NET Framework ทางด้านขวามือบนของหน้าต่าง


1

ฉันพบข้อความแสดงข้อผิดพลาดเดียวกันขณะเรียกใช้ NUnit 2.4.8 เนื่องจากฉันไม่ได้อัปเกรดในบางครั้งฉันจึงติดตั้ง NUnit ปัจจุบัน (v2.5.9) และพบว่าตอนนี้รองรับชุดประกอบ VS2010 แล้ว ดังนั้นหากคุณเพิ่งพบข้อผิดพลาดนี้ให้ตรวจสอบเวอร์ชัน NUnit ของคุณ : ณ เดือนธันวาคม 2010 (หรือมากกว่านั้น) สิ่งเดียวที่คุณต้องทำคืออัปเกรด NUnit


ฉันใช้ NUnit 2.5.9 ที่ดาวน์โหลดเมื่อ 15/03/2011 และปัญหานี้จะไม่หายไปสำหรับฉัน แม้ว่าฉันจะลองใช้โซลูชันที่เสนอ
DrLazer

1

ตั้งแต่ NUnit 2.5.10 คุณสามารถเปิดใช้งานการสนับสนุน Visual Studio ใน GUI Runner:

เครื่องมือ -> การตั้งค่า -> การสนับสนุน IDE

หลังจากนั้นฉันก็สามารถแนบกับกระบวนการ nunit-agent.exe ซึ่งรันแอสเซมบลีของคุณในโดเมนแอป. NET 4.0 ได้สำเร็จ


0

หากคุณพบปัญหานี้หลังจากอัปเกรดเป็น nunit 2.5.5 แล้วคุณจะต้องอัปเกรด nant เป็นเวอร์ชันล่าสุดสำหรับฉันซึ่งเป็นอัลฟ่า. 91


0

ผมพบว่ามีประโยชน์ในการเริ่มต้นจาก NUnit ประยุกต์ใช้แม่แบบ รองรับ VS C # Express ช่วยให้สามารถทดสอบการดีบักและมี NUnit ที่คอมไพล์ไว้ล่วงหน้าสำหรับ. NET 4.0 ขอขอบคุณผู้เขียนโครงการทดสอบใหม่เตรียมพร้อมในคลิกเดียว

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