Znacie jakieś ciekawe techniki na profilowanie i przyśpieszanie testów? Mam tu na myśli rozwiązania, które zmniejszą czas wykonywania poszczególnych testów, a nie narzędzia do odpalania testów równolegle.
Jako przykład mogę podać taki snippet:
config.before(:suite) do
BCrypt::Engine.cost = BCrypt::Engine::MIN_COST
end
Działa cuda. W jednym projekcie czas się zmniejszył z 12-13 minut do 7-8 na cały suite.
Pierwsze prawdopodobnie działa na tym samym co podane wyżej zmiany ustawień BCrypt, tyle, że dla Devise. Drugie niemal wyłącza logowanie w trakcie testów, co również je przyspiesza. Przeważnie te dwa ustawienia przyśpieszają testy o kilkanaście procent.
Dzięki za wszystkie podpowiedzi Na razie tips z bcryptem najlepiej się sprawdził, będę musiał jeszcze pokombinować z patchsetami i tweakami do rubiego.
Myślę, że jest. Otwiera oczy na to, ze można inaczej. W sensie w ogóle można trochę inaczej pisać kod. Podobnie robił Weirich i inni znani Więc myślę, że to niezła sugestia.
Tak jak wspomniał @soso, można też też trzymać bazę danych w ramie, chociaż nie jest to gigantyczny skok w porównaniu do ssd. Jeżeli ktoś używa innej bazy danych niż sqlite, to jest możliwość zrobienia partycji ramfs
Pewnie nikt nie będzie przepisywał wszystkich testów na taki schemat, ale następny projekt można zacząć robić w taki sposób. Zresztą ta prezentacja jest bardziej o tym jak pisać kod.
A czy ktoś z Was korzysta z jakiegoś rozwiązania, które pozwala uruchomić testy na innej maszynie np. w sieci lokalnej. Tylko nie mam tu na myśli CI, że trzeba najpierw to popchnąć do repozytorium. Chodzi mi bardziej o podlinkowanie mojego katalogu z projektem na innym komputerze w sieci lokalnej i tam uruchamianie testów.