2012-11-08 34 views
5

Sto provando ad installare una suite di test in Ruby per automatizzare il collaudo di un WebUI (utilizzando Watir)Impostazione Test Suite in Ruby

Le singole prove sono belle e tutti corrono in modo corretto, ma sto avendo problemi con la suite.

Ad esempio, se uno dei miei test è (dove BaseTestClass estende Test :: Unit :: TestCase)

class Test3_1_3_1_2 < BaseTestClass 
    def testHeightOfMainPanel 
    assert(false, 'Not implemented') 
    end 
end 

Nel mio script RunAllTests sto cercando di fare quanto segue

require 'test/unit' 

Test::Unit.at_start do 
    #Lets create our own user for these tests 
    createCCUser(User, Password) 
end 

Test::Unit.at_exit do 
    #Delete our own user 
    deleteUser(User) 
end 


Dir["./**/Test*.rb"].each{|s| 
    puts s.to_s 
    load s 
} 

Quindi, in pratica quello che voglio fare è creare un nuovo utente all'inizio dei test, eseguire i test e quindi eliminare l'utente. Questo è necessario perché il sistema è un single sign on (kinda) e se abbiamo usato lo stesso utente per tutti, non c'è alcuna garanzia che i test vengano eseguiti correttamente (cioè qualcun altro potrebbe eseguire il test contemporaneamente e poi il primo utente sarebbe cacciato)

Gli errori che sto ottenendo sono: metodo non definito at_start' and private method at_exit' chiamato

so che sto facendo qualcosa di sbagliato, ma essendo molto nuovo a ruby ​​è difficile vedere dove. Fondamentalmente ciò di cui ho bisogno è un modo per eseguire alcune impostazioni, eseguire tutti i test che possono essere trovati e quindi effettuare una pulizia. Ogni test ha le proprie impostazione e teardown metodi separati

Vorrei anche aggiungere, ho provato molte variazioni dello stesso di cui sopra, ad esempio

require 'test/unit' 

class Temp < Test::Unit::TestCase 
    Test::Unit.at_exit do 
    #Delete our own user 
    deleteUser(User) 
    end 


    Test::Unit.at_start do 
    #Lets create our own user for these tests 
    createCCUser(User, Password) 
    end 

    Dir["./**/Test*.rb"].each { |s| 
    puts s.to_s 
    load s 
    } 
end 

E io ancora non capisco. Qualsiasi aiuto sarebbe gradito

+0

Quale versione di Ruby e test/unit stai usando? –

risposta

5

Penso che il problema è, supponendo che si stia utilizzando Ruby 1.9.3, è la confusione su quale gemma è richiesta da require 'test/unit'.

In Ruby 1.9.3, require 'test/unit' richiede la gemma "Minima". I metodi che vuoi usare non esistono in questa gemma.

I metodi at_start e at_exit esistono nella gemma test-unit.

Supponendo di avere sia la gemma Minitest (installata di default in Ruby 1.9) sia la gemma Test-Unit (installata manualmente utilizzando gem install test-unit), è necessario specificare in modo specifico che si desidera la gemma dell'unità di test.

Prima di richiedere test/unit, specificare l'utilizzo del test-unit gemma:

gem 'test-unit' 
require 'test/unit' 
+0

Grazie Justin, questo ha risposto alla domanda perfettamente. In tutte le cose che ho letto, non ho mai visto nulla riguardo alla gemma specificata, ed era vero che era una confusione su quale gemma fosse richiesta. grazie mille per il tuo aiuto – Dace

Problemi correlati