คำถามติดแท็ก mstest

Microsoft .NET Unit Testing Framework (MSTest)


30
ประเภทผู้ให้บริการ Entity Framework ไม่สามารถโหลดได้?
ฉันพยายามเรียกใช้การทดสอบของฉันบน TeamCity ซึ่งปัจจุบันติดตั้งอยู่ในเครื่องของฉัน System.InvalidOperationException: องค์กร Framework ประเภทผู้ให้บริการSystem.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'สำหรับ ' System.Data.SqlClient' ผู้ให้บริการ ADO.NET ไม่สามารถโหลด ตรวจสอบให้แน่ใจว่าแอสเซมบลีของผู้ให้บริการพร้อมใช้งานสำหรับแอปพลิเคชันที่ทำงานอยู่ ดูhttp://go.microsoft.com/fwlink/?LinkId=260882สำหรับข้อมูลเพิ่มเติม .. ฉันไม่มีการอ้างอิงถึงSystem.Data.Entityในโครงการใด ๆ ของฉันตามที่แนะนำบน codeplex สำหรับอัพเกรดเป็น EF6 ดังนั้นฉันไม่แน่ใจว่าทำไมฉันถึงได้รับข้อยกเว้นนี้ ฉันไม่ได้รับข้อยกเว้นเช่นนี้เมื่อฉันทำการทดสอบจาก VS ฉันพยายามตั้งค่า CopyLocal เป็น false จากนั้นอีกครั้งเป็นจริง .. แต่นั่นก็ไม่ได้ผลเหมือนกัน ปรับปรุง แอพของฉัน. config มีดังต่อไปนี้ สิ่งนี้ทำให้เกิดพฤติกรรมบางอย่างที่ฉันไม่เข้าใจหรือไม่? <?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, …

7
NUnit vs. MbUnit กับ MSTest vs. xUnit.net [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา มีกรอบ unittesting ค่อนข้างมากสำหรับ NET. ฉันพบการเปรียบเทียบคุณสมบัติเล็กน้อยนี้: http://xunit.github.io/docs/comparisons.html ตอนนี้ฉันจะเลือกสิ่งที่ดีที่สุดสำหรับเรา แต่อย่างไร มันสำคัญไหม อันไหนเป็นข้อพิสูจน์ในอนาคตมากที่สุดและมีแรงผลักดันที่ดีอยู่ข้างหลัง? ฉันควรสนใจเกี่ยวกับคุณสมบัติหรือไม่ ในขณะที่ xUnit ดูเหมือนจะทันสมัยที่สุดและออกแบบมาโดยเฉพาะสำหรับ. NET แต่ NUnit ก็ดูเหมือนจะเป็นที่ยอมรับอย่างกว้างขวาง MSTest ถูกรวมเข้ากับ Visual Studio อีกครั้ง ...


7
วิธีเปรียบเทียบรายการในการทดสอบหน่วย
การทดสอบนี้จะล้มเหลวได้อย่างไร? [TestMethod] public void Get_Code() { var expected = new List<int>(); expected.AddRange(new [] { 100, 400, 200, 900, 2300, 1900 }); var actual = new List<int>(); actual.AddRange(new [] { 100, 400, 200, 900, 2300, 1900 }); Assert.AreEqual(expected, actual); // Assert.AreSame(expected, actual) fails // Assert.IsTrue(expected.Equals(actual)) fails }

21
การทดสอบหน่วย: DateTime.Now
ฉันมีการทดสอบหน่วยที่คาดว่า 'เวลาปัจจุบัน' จะแตกต่างจาก DateTime ตอนนี้และฉันไม่ต้องการเปลี่ยนเวลาของคอมพิวเตอร์อย่างชัดเจน กลยุทธ์ที่ดีที่สุดในการบรรลุเป้าหมายนี้คืออะไร?

4
เหตุใด TestInitialize จึงถูกไล่ออกสำหรับการทดสอบทุกครั้งในการทดสอบหน่วย Visual Studio ของฉัน
ฉันใช้ Visual Studio 2010 Beta 2 ผมได้มีเพียงหนึ่งเดียว[TestClass]ที่มี[TestInitialize], และไม่กี่[TestCleanup][TestMethods] ทุกครั้งที่มีการทดสอบวิธีการทำงานวิธีการเตรียมใช้งานและล้างข้อมูลนั้นจะยังทำงานอยู่! ฉันอยู่ภายใต้ความประทับใจที่[TestInitialize]&[TestCleanup]ควรจะทำงานเพียงครั้งเดียวต่อการทดสอบในท้องถิ่น ถูกต้องหรือไม่ ถ้าไม่เป็นวิธีที่เหมาะสมในการทำเช่นนี้คืออะไร?

9
ตัวเลือก“ สร้างการทดสอบหน่วย” อยู่ที่ไหน
ฉันได้ติดตั้ง Visual Studio 2012 Ultimate ใหม่แล้ว ฉันสร้างโครงการทดสอบด้วยโซลูชันของฉันและมีการทดสอบหน่วยเริ่มต้นบางอย่าง อย่างไรก็ตามการคลิกขวาที่เมธอดใหม่จะไม่แสดงเมนูบริบท "สร้างการทดสอบหน่วย" อีกต่อไป ดู Visual Studio 2010 Ultimate: และ Visual Studio 2012 Ultimate: ความคิดใดที่เป็นไปได้ UPDATE: โซลูชันสำหรับ Visual Studio 2012 และ 2013: Microsoft ได้รับทราบแล้วที่นี่และเสนอวิธีแก้ปัญหาอย่างเป็นทางการเพื่อแก้ไข ดาวน์โหลดติดตั้งและสนุก!

9
เราจะรันวิธีทดสอบด้วยพารามิเตอร์หลายตัวใน MSTest ได้อย่างไร
NUnit มีคุณสมบัติที่เรียกว่าค่าเช่นด้านล่าง: [Test] public void MyTest( [Values(1,2,3)] int x, [Values("A","B")] string s) { // ... } ซึ่งหมายความว่าวิธีการทดสอบจะทำงานหกครั้ง: MyTest(1, "A") MyTest(1, "B") MyTest(2, "A") MyTest(2, "B") MyTest(3, "A") MyTest(3, "B") ตอนนี้เรากำลังใช้ MSTest แต่มีสิ่งใดเทียบเท่ากับสิ่งนี้เพื่อให้ฉันสามารถรันการทดสอบเดียวกันด้วยพารามิเตอร์หลายตัวได้หรือไม่ [TestMethod] public void Mytest() { // ... }

11
ฉันจะรับ“ Copy to Output Directory” เพื่อทำงานกับ Unit Tests ได้อย่างไร?
เมื่อฉันสร้างโครงการทดสอบหน่วยก่อนที่จะดำเนินการทดสอบผลลัพธ์การทดสอบจะถูกคัดลอกไปยังโฟลเดอร์ TestResults จากนั้นการทดสอบจะดำเนินการ ปัญหาที่ฉันพบคือไม่ใช่ทุกไฟล์ในไดเร็กทอรี Debug / bin ที่ถูกคัดลอกไปยังโปรเจ็กต์ TestResults ฉันจะรับไฟล์ที่คัดลอกไปยังไดเร็กทอรี Debug / bin เพื่อคัดลอกไปยังโฟลเดอร์ TestResults ได้อย่างไร

5
วิธีเขียนลง Console.Out ในระหว่างดำเนินการทดสอบ MSTest
บริบท: เรามีผู้ใช้บางรายรายงานปัญหาเกี่ยวกับคุณลักษณะการอัปโหลดไฟล์ในเว็บแอปพลิเคชันของเรา เกิดขึ้นเป็นครั้งคราวและไม่มีรูปแบบพิเศษใด ๆ เราพยายามคิดมานานแล้วโดยเพิ่มข้อมูลการดีบักทุกที่ที่คิดว่าอาจช่วยได้รวบรวมข้อมูลบันทึก ฯลฯ แต่เราไม่สามารถทำซ้ำหรือคิดออกได้ ปัญหา: ตอนนี้ฉันพยายามทำซ้ำโดยใช้ MSTest และ WatiN เพื่อทำซ้ำการดำเนินการที่ควรจะล้มเหลวเป็นจำนวนมาก (หลายร้อยครั้ง) เพื่อให้ได้เบาะแสว่าการทดสอบลูปไปได้ไกลแค่ไหนฉันต้องการพิมพ์สิ่งที่ชอบ: Console.WriteLine(String.Format("Uploaded file, attempt {0} of {1}", i, maxUploads)); อย่างไรก็ตามสิ่งนี้จะไม่ปรากฏในหน้าต่างผลลัพธ์ ตอนนี้ฉันรู้ว่าคุณจะได้รับผลคอนโซลในผลการทดสอบ (เช่นเดียวกับสิ่งที่คุณเอาท์พุทจากDebug.Writelineฯลฯ ) แต่นี้ไม่สามารถใช้ได้จนกว่าหลังการทดสอบเสร็จสิ้น และเนื่องจากการทดสอบของฉันกับการทำซ้ำหลายร้อยครั้งอาจใช้เวลาพอสมควรฉันจึงอยากรู้ว่ามันไปได้ไกลแค่ไหน คำถาม: มีวิธีใดบ้างที่ฉันจะได้รับเอาต์พุตคอนโซลในหน้าต่างเอาต์พุตระหว่างการดำเนินการทดสอบ
114 c#  console  mstest  watin 

15
ฉันจะเขียนผลลัพธ์จากการทดสอบหน่วยได้อย่างไร
การเรียกใด ๆ ในหน่วยของฉันจะทดสอบไปที่อย่างใดอย่างหนึ่งDebug.Write(line)หรือConsole.Write(Line)เพียงแค่ข้ามไปในขณะที่ดีบักและผลลัพธ์จะไม่ถูกพิมพ์ออกมา เรียกใช้ฟังก์ชันเหล่านี้จากในชั้นเรียนฉันใช้งานได้ดี ฉันเข้าใจดีว่าการทดสอบหน่วยนั้นเป็นไปโดยอัตโนมัติ แต่ฉันก็ยังต้องการให้สามารถส่งออกข้อความจากการทดสอบหน่วยได้

3
เป็นไปได้ไหมที่จะรันโค้ดหนึ่งครั้งก่อนการทดสอบทั้งหมดจะทำงาน
โดยทั่วไปฉันต้องการบอกให้ MSTest รันโค้ดเล็กน้อยก่อนที่จะเปิดตัวในชุดการทดสอบโดยพื้นฐานแล้วสิ่งที่ฉันต้องการจะทำคือสิ่งเดียวกับการติดโค้ดใน Main()ในการดำเนินการบิตของรหัสก่อนที่จะเปิดเป็นชุดของการทดสอบวิ่งเป็นหลักสิ่งที่ฉันต้องการจะทำคือสิ่งเดียวกับที่ติดรหัสบางอย่างใน เหตุผลที่ฉันต้องการทำเช่นนี้คือฉันต้องการทำการบันทึกด้วย log4net ในระหว่างการทดสอบการรวมระบบของฉัน ฉันไม่สามารถเพียงแค่ใช้แอตทริบิวต์การชุมนุมตั้งแต่ตามเวลาที่มันอ่านมันในการทดสอบของฉันการชุมนุมจะได้เรียกแล้วlog4net.Config.XmlConfigurator LoggerManagerเอกสารนี้แนะนำให้กำหนดค่า log4net อย่างชัดเจนที่จุดป้อนรหัส - แต่ในการทดสอบของฉันอยู่ที่ไหน ฉันต้องสามารถทำการทดสอบใน TestDriven.NET และ MSTest runner ได้
112 .net  mstest 

7
โครงการของคุณไม่ได้อ้างอิงกรอบงาน“ .NETFramework, Version = v4.6.2” เพิ่มการอ้างอิงถึง“ .NETFramework, Version = v4.6.2” ใน“ TargetFrameworks”
ฉันไม่สามารถทำการทดสอบหน่วยของฉันได้ ฉันมีข้อผิดพลาดถัดไป: โครงการของคุณไม่ได้อ้างอิงเฟรมเวิร์ก ".NETFramework, Version = v4.6.2" เพิ่มการอ้างอิงถึง ".NETFramework, Version = v4.6.2" ในคุณสมบัติ "TargetFrameworks" ของไฟล์โครงการของคุณจากนั้นเรียกใช้ NuGet restore อีกครั้ง ในapp.config: <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2"/> </startup> ในโครงการ> คุณสมบัติ> แอปพลิเคชัน> TargetFramework (.NET Framework 4.6.2) จะแก้ไขได้อย่างไร?

8
ฉันสามารถใช้ mstest.exe โดยไม่ต้องติดตั้ง Visual Studio ได้หรือไม่
ฉันต้องการใช้ mstest.exe เพื่อเรียกใช้การทดสอบหน่วยของฉันบนเซิร์ฟเวอร์การสร้าง แต่ฉันไม่ต้องการติดตั้ง Visual Studio บนเซิร์ฟเวอร์การสร้าง ฉันสามารถติดตั้ง MSTest โดยไม่ใช้ Visual Studio ได้หรือไม่

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