2012-02-15 4 views
5

Nel tentativo di utilizzare Cucumber per uno script da riga di comando, ho installato la gemma aruba seguendo le istruzioni fornite. E 'nel mio Gemfile, posso verificare che la versione corretta sia installato e ho inclusoIl controllo dell'output da "command" deve contenere un arresto anomalo imprevisto con NilClass

require 'aruba/cucumber' 

in 'funzioni/env.rb'

Al fine di garantire che funziona, ho scritto il seguente scenario :

@announce 
Scenario: Testing cucumber/aruba 
    Given a blank slate 
Then the output from "ls -la" should contain "drw" 

presupponendo che la cosa non funzioni.

Non fallire, ma non riesce per le ragioni sbagliate:

@announce 
Scenario: Testing cucumber/aruba     
    Given a blank slate       
    Then the output from "ls -la" should contain "drw" 
     You have a nil object when you didn't expect it! 
     You might have expected an instance of Array. 
     The error occurred while evaluating nil.[] (NoMethodError) 
     features/dataloader.feature:9:in `Then the output from "ls -la" should contain "drw"' 

Qualcuno ha qualche idea perché questo non sta funzionando? Questo sembra essere un comportamento aruba molto basilare.

risposta

8

ti manca un 'Quando' passo - l'aruba "uscita dovrebbe contenere" passo richiede il comando di avere già eseguito (non viene eseguito essa stessa, si guarda solo in su).

@announce 
Scenario: Testing cucumber/aruba 
    Given a blank slate 
    When I run `ls -la` 
    Then the output from "ls -la" should contain "drw" 

Questo produce, sulla mia macchina:

@announce 
Scenario: Testing cucumber/aruba      # features/test_aruba.feature:8 
    When I run `ls -la`        # aruba-0.4.11/lib/aruba/cucumber.rb:56 
     $ cd /Users/d.chetlin/dev/mine/ladder/tmp/aruba 
     $ ls -la 
     total 0 
     drwx------ 2 d.chetlin staff 68 Feb 15 23:38 . 
     drwx------ 7 d.chetlin staff 238 Feb 15 23:38 .. 

    Then the output from "ls -la" should contain "drw" # aruba-0.4.11/lib/aruba/cucumber.rb:86 

1 scenario (1 passed) 
2 steps (2 passed) 
0m0.465s 
+0

Grazie. Avevo dato per scontato che il passo "l'uscita da" ls -la "dovesse contenere" drw "" anche il comando. Ma a quanto pare non è così. Separare i due in due passaggi separati ha funzionato. – Agazoom

+0

se non ti dispiacerebbe accettare la risposta, in tal caso, sarei riconoscente :-) – checkorbored

+0

Fatto. Scusa ... è un po 'nuovo per questa cosa di stackoverflow. :-) – Agazoom