Używam mocha do uruchamiania testów napisanych przy użyciu węzła. Zakładałem, że każdy z moich testów będzie odizolowany od siebie. Tak się nie wydaje. Kiedy uruchamiasz mocha w katalogu testów, wydaje się, że ładujesz wszystkie pliki testowe razem, a następnie wykonujesz każdy z pakietów testowych.Jak mogę zmusić mokka do prowadzenia testów w odosobnieniu?
Może to zepsuć izolację, gdy w jednym teście znajdują się moduły, na które mogą mieć wpływ moduły użyte w innym teście.
Mam w tym Gist (Failing Mocha Test) dwa moduły (aib) i dwa testy (test i test b). Jeśli prowadzisz Mocha niezależnie na każdym teście oba uda:
$ mocha --ui tdd a-test
$ mocha --ui tdd b-test
Jednak jeśli uruchomię tych badań łącznie, a-test nie powiedzie się:
$ mocha --ui tdd .
czy naprawdę jest to niezbędne do uruchomienia mocha dla każdego indywidualny test, aby uzyskać odpowiednią izolację?
Uwaga: Powodem niepowodzenia testu A jest wywołanie zdarzenia, które wywołuje singleton w module b. Nie występuje to w normalnym wykonaniu testu b. Ponieważ test a dostarcza kompletny zestaw zależności (które nie obejmuje b), byłem zaskoczony, że wszystkie moduły zostały załadowane do jednego środowiska testowego.