Minitest-instrument

Zainspirowany tym postem: http://railstips.org/blog/archives/2011/02/20/give-yourself-constraints/ oraz wspomnianym w nim http://gaug.es/ pomysłałem, że ciekawie by było mieć jakieś ładne statystyki odnośnie czasu wykonywania się poszczególnych metod w testach.

Zalążek rozwiązania już powstał:


wysyła odpowiednie powiadomienie kiedy metoda testująca się wykonała. Więcej na ten temat:

to rozwiązanie jest zgodne z minitest, z którego korzysta ActiveSupport::TestCase pod spodem. Nic nie stoi jednak na przeszkodzi by ktoś napisał rspec-instrument i wysyłał takie same powiadomienia dla zgodności.

Na początek stworzyłem też


co pozwala zapisać na bazie informacje o czasie wykonywania się poszczególnych testów.

Konfiguracja: https://github.com/paneq/activemodel-warnings/blob/master/test/test_helper.rb
include: https://github.com/paneq/activemodel-warnings/blob/master/test/warnings_test.rb

Trzeci etap to będzie stworzenie przeglądarki, które z działającej pod spodem bazy wyciągnie te dane i zaprezentuje w sensowny sposób.

Jeśli ktoś ma ochotę się przyłączyć do zabawy to zapraszam. Wsparcie dla innych engine’ów testujących oraz innych backendów do przechowywania danych byłoby miłe moim zdaniem :slight_smile:

Tymczasem wracam chorować do łóżka :frowning:

Chodzi o czas wykonania poszczególnych test_something? Może to nie jest do końca to, ale już teraz rspec -p pokazuje 10 najwolniejszych przypadków.

Co dalej planujesz robić z tymi danymi? Jakie statystyki konkretnie? :slight_smile:

Tak, czasy wykonania test_something, dokładnie.

Nie wiem jeszcze co można z nimi robić :slight_smile: Pokazywać najwolniejsze i zmiany w czasie ? Zawsze fajny byłby wykresik :slight_smile: Ciekawie mogłoby też wypaść porównanie poszczególnych testów dla różnych ruby/baz danych i innych czynników zmieniających się. W szczególności ciekawy problem gdy masz suit wykonanywany na różnych konfiguracjach.