czesc
jak w temacie, komenda
rake RAILS_ENV=test
odpala testy, wywala błędy z nimi związane (nie ustawiałem nic dla testów jeszcze) oraz czyści bazę ?! na szczęście testową, dlaczego tak się dzieje ?
czesc
jak w temacie, komenda
rake RAILS_ENV=test
odpala testy, wywala błędy z nimi związane (nie ustawiałem nic dla testów jeszcze) oraz czyści bazę ?! na szczęście testową, dlaczego tak się dzieje ?
Żeby każdy test zaczynał od 0 i coby dane się nie plątały. Zasada jest taka że przed i po zakończeniu danego testu baza jest pusta.
rozumiem, da się jakoś tego uniknąć, poza oczywiście nie odpalaniem takiej komendy ?
Tak. Można wyłączyć to w test_helper.rb
class Test::Unit::TestCase
self.use_transactional_fixtures = false
end
Ogólnie hasło do poznania: Transactional fixtures
A dlaczego chciałbyś to wyłączyć? Tak jest zrobione z jakiegoś konkretnego logicznego powodu. Przemyśl czy na pewno Twój powód do wyłączenia ma jakieś podstawy i jeżeli tak to najlepiej wrzuć na forum - być może źle się do tego zabierasz.
Są przypadki, w których warto wyłączyć transactional fixtures, ale są raczej rzadkie (sphinx na przykład).
Jeśli nie ma mozliwości przypadkowego wyczyszczenia bazy produkcyjnej to nie chcę tego wyłączać, poprostu zdziwiło mnie to ale domyślam się że to taka cecha testów a nie wada.
Jeżeli nie ustawisz takich samych nazw dla bazy testowej i produkcyjnej, to nie ma takiej możliwości. Dlatego na każdym tutorialu o tym mówią przy ustawianiu bazy