Tôi vừa mới (hôm nay) đã thử SpecFlow lần đầu tiên. Tôi đang chơi về bằng cách tạo một thư viện lớp mới trong VS2010 Pro và thêm một tệp định nghĩa tính năng SpecFlow.SpecFlow sai khi sử dụng NUnit
Thing là, tích hợp dường như không hoạt động đúng cách, với nhiều lỗi khác nhau. Tôi đã chọn MsTest làm Á hậu thử nghiệm, bởi vì tôi không thể làm phiền với việc gọi NUnit (Tôi muốn sử dụng NUnit trong thời gian dài nhưng tại thời điểm này tôi chỉ muốn nhận được một số mã BDD làm việc). Các tập tin mã được tạo ra tuy nhiên tiếp tục tham khảo NUnit - đó là rõ ràng là sai, kể từ khi tôi vừa nói với SpecFlow để chạy bằng cách sử dụng MsTest. Tôi đã làm tất cả mọi thứ tôi có thể nghĩ đến để gọi các thế hệ mã một lần nữa, bao gồm việc tạo ra một dự án thư viện lớp mới với tùy chọn MsTest được chọn trong Tools> Options> SpecFlow.
Nếu tôi rời trường thử nghiệm được đặt thành 'Tự động' và nhấp chuột phải vào tệp tính năng, sau đó chọn 'Chạy kịch bản SpecFlow' Tôi nhận được thông báo lỗi "Không thể tìm thấy người thử nghiệm phù hợp".
Nếu thay vào đó thay đổi trường Á hậu thử nghiệm thành MsTest, tôi nhận được thông báo lỗi khác khi thực hiện điều tương tự - "Tham chiếu đối tượng không được đặt thành thể hiện của đối tượng". Tôi không ngạc nhiên vì điều này vì nó vẫn đang cố gắng chạy thử nghiệm NUnit mặc dù tôi đã yêu cầu rõ ràng cho MsTest, mặc dù rõ ràng nó không nên nullref và trình bày cho người dùng.
Tôi đang làm gì sai? Tài liệu này không hữu ích và theo như tôi thấy, không có câu hỏi thường gặp nào.
chỉnh sửa # 1: Tôi đã thiết lập rằng cài đặt thực tế tôi đang tìm được cung cấp bằng cách sử dụng App.Config
bằng cách sử dụng trường <unitTestProvider name="MsTest" />
. Tôi có thể thấy những gì đã xảy ra - trường trong menu tùy chọn Visual Studio dường như không sửa đổi dự án bạn hiện đang làm việc. Thing là, điều này làm cho nó trông giống như lĩnh vực đó không làm bất cứ điều gì cả. Bây giờ tôi đã thuyết phục SpecFlow tạo các lớp MsTest và chạy bằng cách sử dụng trình runner MSTest.
Vì vậy, bây giờ câu hỏi được biến thành một dạng hơi khác: Điều gì (nếu có), trường Công cụ> Tuỳ chọn> SpecFlow> Công cụ kiểm tra Runner có làm gì không?
Mẹo tuyệt vời, cảm ơn! Tôi thiết lập nút menu ngay lập tức bởi vì nó trông rất hữu ích, do đó, bất kể dòng yêu cầu này đã cung cấp một lợi ích phụ tiện dụng. Xấu hổ về SpecFlow mặc dù, có vẻ như tôi không phải là người duy nhất đã có vấn đề với nó làm những gì nó phải làm. Sản phẩm thực tế hoạt động, nhưng tích hợp VS không hoàn toàn đúng. –
Vâng tôi muốn nó được tích hợp nhiều hơn nhưng bây giờ tôi vẫn ổn với điều đó. Việc sử dụng nó vượt quá lợi ích đó cho tôi ngay bây giờ. Vui mừng mẹo giúp! – MichaelF
Bạn đã chạy trình cài đặt chuyên biệt hay bạn đã thêm nó vào dự án của mình bằng NuGet chưa? Trình cài đặt sẽ cài đặt tất cả các thành phần tích hợp như tích hợp Visual Studio nơi cài đặt nuget chỉ thêm các tham chiếu cần thiết. –