2013-04-10 26 views
13

Tôi đã thấy trong một video của Microsoft về Visual Studio cập nhật 2 liên quan đến các thuộc tính này. Tuy nhiên, tôi không thể tìm thấy bất kỳ thông tin nào khác về họ và không thể có được một dự án để xây dựng với họ.DataTestMethod và DataRow thuộc tính trong MSTEST

Có ai biết gì về chúng hoặc cách làm cho chúng hoạt động không?

Cảm ơn.

[DataTestMethod] 
[DataRow("a", "b")] 
[DataRow(" ", "a")] 
public void TestMathos1(string value1, string value2) 
{ 
    Assert.AreEqual(value1 + value2, string.Concat(value1, value2)); 
} 
+1

Kiểm tra điều này: [Cách chạy phương pháp thử nghiệm với nhiều tham số trong MSTest?] (Http://stackoverflow.com/questions/9021881/how-to-run-a-test-method-with-multiple-parameters -in-mstest # 13710788). – Schaliasos

+0

Cảm ơn rất nhiều. Bất kỳ đầu mối nào tại sao việc sử dụng của nó quá hạn chế? –

+0

Tôi thực sự không biết. Nhưng bạn có thể thêm nó trong [UserVoice] (http://visualstudio.uservoice.com/forums/121579-visual-studio/category/31481-net) :) – Schaliasos

Trả lời

8

Có vẻ đây là chỉ có sẵn trong các dự án thử nghiệm đơn vị cho WinRT/Metro và bây giờ với bản cập nhật 2, Windows Phone 8. Đó là một bí ẩn đối với tôi tại sao điều này không có sẵn cho tất cả các thử nghiệm với MSTest.

+1

Vâng, bây giờ - hoặc ít nhất sẽ là trong phần tiếp theo phiên bản của MSTest https://blogs.msdn.microsoft.com/visualstudioalm/2016/06/17/taking-the-mstest-framework-forward-with-mstest-v2/ –

+1

Nó hiện có sẵn dưới dạng gói NuGet https: //blogs.msdn.microsoft.com/visualstudioalm/2016/06/17/taking-the-mstest-framework-forward-with-mstest-v2/ – ironstone13

6

Cuối cùng, tính năng này đã được thêm vào (vẫn còn trong trước khi phát hành) https://blogs.msdn.microsoft.com/visualstudioalm/2016/06/17/taking-the-mstest-framework-forward-with-mstest-v2/

Về cơ bản, người ta phải làm hai việc:

1) Cài đặt hai gói NuGet (phiên bản không thực sự vấn đề, nhưng đây là những gì tôi có)

<package id="MSTest.TestAdapter" version="1.1.5-preview" targetFramework="net452" /> 
    <package id="MSTest.TestFramework" version="1.0.6-preview" targetFramework="net452" /> 

2) Tháo refenrece vào thư viện kiểm tra cũ, bởi vì nó có các thuộc tính tương tự được định nghĩa trong namespace cùng - điều này đã được thực hiện để đạt được trở lại phường phù hợp

Microsoft.VisualStudio.QualityTools.UnitTestFramework 
+1

Được viết độc đáo. Với thời gian thực hiện miễn phí; dễ dàng đăng nhập đầu ra và bây giờ các tính năng như 'DataTestMethod' MSTest-v2 là một khung kiểm thử đơn vị cạnh tranh. – Aaron

10

Tôi biết đây là một câu hỏi cũ, nhưng bây giờ có một hương tốt được công bố tại https://blogs.msmvps.com/bsonnino/2017/03/18/parametrized-tests-with-ms-test/

Tóm lại, bạn sẽ cần phải cài đặt MSTest.TestFrameworkMSTest.TestAdapter, và loại bỏ các tham chiếu tới Microsoft.VisualStudio.QualityTools.UnitTestFramework. Sau đó, bạn có thể chỉ ra thử nghiệm được tham số hóa với thuộc tính [DataTestMethod] và có thể thêm thông số của mình bằng cách sử dụng thuộc tính [DataRow], theo ví dụ của bạn. Các giá trị từ thuộc tính [DataRow] sẽ được chuyển đến phương pháp thử theo thứ tự mà chúng được chỉ định.

Lưu ý rằng các giá trị trong thuộc tính [DataRow] phải là nguyên thủy, do đó bạn không thể sử dụng ví dụ DateTime hoặc decimal. Nếu bạn muốn chúng, bạn sẽ phải giải quyết giới hạn này (ví dụ thay vì có tham số DateTime để biểu thị ngày, bạn có thể có ba thông số nguyên thể hiện năm, tháng và ngày và tạo DateTime trong nội dung kiểm tra).

+1

Cảm ơn rất nhiều vì câu trả lời của Tim. Nếu ai đó hoàn toàn gắn liền với MSTest vì lý do nào đó thì đó là tin tuyệt vời. Nếu không thì tôi mạnh mẽ khuyên bạn nên thay đổi để NUnit, XUnit vv Microsoft chỉ đơn giản là không đi kiểm tra hoặc TDD nghiêm trọng.Chúng tôi đã thay đổi một dự án rất lớn từ MSTest thành NUnit với rất ít công việc đã mở ra cánh cửa cho một khuôn khổ kiểm tra đầy đủ tính năng hơn đang được tích cực phát triển. Phải mất 4 năm để Microsoft cung cấp tính năng đơn giản này nói lên khối lượng. –

+1

Việc chuyển sang một phần 'int' cho các bài kiểm tra' DateTime' hữu ích. Trong trường hợp của tôi thử nghiệm các giờ khác nhau 2, 3, 4. – SushiGuy

Các vấn đề liên quan