Właśnie (dzisiaj) wypróbowałem SpecFlow po raz pierwszy. Zajmuję się tworzeniem nowej biblioteki klas w VS2010 Pro i dodawaniem pliku definicji funkcji SpecFlow.SpecFlow błędnie używa NUnit
Rzecz polega na tym, że integracja nie działa prawidłowo, z wieloma różnymi błędami. Wybrałem MsTest jako biegacz testowy, ponieważ nie mogę sobie pozwolić na wywoływanie NUnit (chciałbym używać NUnit na dłuższą metę, ale w tej chwili chcę tylko uruchomić jakiś kod BDD). Generowane pliki kodu nadal odwołują się do NUnit - co jest oczywiście błędne, ponieważ właśnie powiedziałem SpecFlow, aby działał przy użyciu MsTest. Zrobiłem wszystko, co mogłem wymyślić, aby ponownie wywołać generowanie kodu, w tym stworzenie zupełnie nowego projektu biblioteki klas z opcją MsTest wybraną w menu Narzędzia> Opcje> SpecFlow.
Jeśli zostawiam pole testu biegacza ustawione na "Auto" i kliknę prawym przyciskiem myszy plik operacji, a następnie wybierz "Uruchom scenariusze typu SpecFlow" Pojawia się komunikat o błędzie "Nie można znaleźć pasującego biegacza testu".
Jeśli zamiast tego zmienię pole testu biegowego na MsTest, otrzymam inny komunikat o błędzie przy robieniu tego samego - "Odniesienie do obiektu nie jest ustawione na instancję obiektu". Nie jestem tym zaskoczony, ponieważ wciąż próbuje uruchomić testy NUnit, mimo że wyraźnie poprosiłem o MsTest, chociaż oczywiście nie powinien on nullref i przedstawić tego użytkownikowi.
Co robię źle? Dokumentacja nie jest pomocna i, o ile widzę, nie ma FAQ.
edit # 1: Mam ustalone, że rzeczywisty ustawienie szukam jest za pomocą App.Config
użyciu pola <unitTestProvider name="MsTest" />
. Widzę, co się stało - pole w menu opcji Visual Studio nie wydaje się modyfikować projektu, nad którym obecnie pracujesz. Chodzi o to, że wygląda na to, że to pole nic nie robi. Teraz przekonałem SpecFlow do wygenerowania klas MsTest i uruchomienia przy użyciu MSTest runner.
Teraz pytanie zmienia się w nieco inne: Co (jeśli coś) robi narzędzie Narzędzia> Opcje> SpecFlow> Pole narzędzia Run Runner?
Wielka wskazówka, dzięki! Natychmiast ustawiłem przycisk menu, ponieważ wyglądało to tak użytecznie, więc niezależnie od tego rodzaju zapytania zapewniłem przydatną korzyść. Szkoda jednak, że SpecFlow nie jest jedyną osobą, która miała problemy z robieniem tego, co powinna. Rzeczywisty produkt działa, ale integracja VS nie jest właściwa. –
Tak, chciałbym, żeby było bardziej zintegrowane, ale na razie jestem z tym w porządku. Jego użycie przewyższa teraz tę korzyść dla mnie. Cieszę się, że wskazówka pomaga! – MichaelF
Czy uruchomiłeś instalator Specflow lub czy dodałeś go do swojego projektu za pomocą NuGet? Instalator zainstaluje wszystkie komponenty integracyjne, takie jak integracja Visual Studio, w której instalacja nuget dodaje tylko niezbędne odniesienia. –