Kaip paleisti vieną testą / spec failą RSpec sistemoje?

Noriu, kad būtų galima paleisti atskirus testus spec faile - pavyzdžiui, vienam failui, kurį redaguoju. rake spec atitinka visas specifikacijas. Mano projektas nėra „Rails“ projektas, todėl rake spec:doc neveikia.

Nežinau, ar tai svarbu, bet čia yra mano katalogų struktūra.

 ./Rakefailas ./lib ./lib/cushion.rb ./lib/cushion ./lib/cushion/doc.rb ./lib/cushion/db.rb ./spec ./spec/spec.opts ./spec/spec_helper.rb ./spec/db_spec.rb
227
27 сент. nustatė Jonathan Tran . 2008-09-27 19:11 '08 at 7:11 pm 2008-09-27 19:11
@ 14 atsakymų

Arba galite praleisti rake ir naudoti komandą rspec:

 rspec path/to/spec/file.rb 

Jūsų atveju, manau, kad jei jūsų byla. / spec / db _spec.rb yra tinkami pagalbininkai, jis turėtų dirbti gerai.

Jei naudojate seną „rspec“ versiją, tai yra:

 spec path/to/spec/file.rb 
311
27 сент. atsakymą pateikė Cameron Booth 27 sep. 2008-09-27 20:20 '08 at 20:20 pm 2008-09-27 20:20

Neperdirbtas skambutis:

 rake spec SPEC = specifikacijos / valdikliai / sessions_controller_spec.rb \ t   SPEC_OPTS = "- e" turėtų prisijungti su slapuku "

Dabar išsiaiškinkite, kaip jį įterpti į redaktorių.

184
27 сент. atsakymas duotas mislav 27 Sep. 2008-09-27 19:22 '08, 19:22 pm 2008-09-27 19:22

Šis klausimas yra senas, tačiau jis pasirodo „Google“ viršuje, kai ieškote, kaip paleisti vieną testą. Nežinau, ar tai buvo naujausias papildymas, bet galite atlikti šiuos veiksmus, kad atliktumėte vieną testą iš specifikacijos:

 rspec path/to/spec:<line number> 

kur -line numeris yra eilutės numeris, kuriame yra dalis jūsų testo. Pavyzdžiui, jei turite specifikaciją, pavyzdžiui:

 1: 2: it "should be awesome" do 3: foo = 3 4: foo.should eq(3) 5: end 6: 

Tarkime, kad jis yra išsaugotas spec / models / foo_spec.rb. Tada jūs paleisite:

 rspec spec/models/foo_spec.rb:2 

ir tai tiesiog atliks šią specifikaciją. Tiesą sakant, šis skaičius gali būti nuo 2 iki 5.

Tikiuosi, kad tai padės!

97
25 июля '12 в 0:30 2012-07-25 00:30 atsakymą pateikė juanpaco liepos 25 d. 12 val. 0:30 2012-07-25 00:30

Taip pat galite naudoti tikrąjį testo pavyzdžio tekstą * e * xample with -e !

Taigi:

 it "shows the plane arrival time" 

galite naudoti

 rspec path/to/spec/file.rb -e 'shows the plane arrival time' ./scripts/spec path/to/spec/file.rb -e 'shows the plane arrival time' 

Čia nereikia grėbti.

57
15 апр. atsakymas pateikiamas „ 15“ balandžio mėn 2011-04-15 19:37 '11, 7:37 PM 2011-04-15 19:37

iš pagalbos (spec -h):

 -l, --line LINE_NUMBER Execute example group or example at given line. (does not work for dynamically generated examples) 

Pavyzdys: spec spec / runner_spec.rb -l 162

18
17 авг. atsakymas pateikiamas boblinui 17 d. 2010-08-17 13:10 '10, 13:10, 2010-08-17 13:10

Jei įdiegėte rspec kaip įskiepį, o ne kaip brangakmenį, tuomet jūs neturėsite vykdomosios spec .

Bet kokiu atveju, jums tereikia paleisti failą naudodami rubiną. „Rspec“ kodas yra pakankamai protingas, kad galėtumėte atlikti bandymus.

pavyzdžiui:

 ruby myclass_spec.rb 
12
28 сент. atsakymą pateikė Orion Edwards rugsėjo 28 d 2008-09-28 23:04 '08, 11:04 val. 2008-09-28 23:04

http://github.com/grosser/single_test leidžia daryti kažką panašaus ..

 rake spec:user #run spec/model/user_spec.rb (searches for user*_spec.rb) rake test:users_c #run test/functional/users_controller_test.rb rake spec:user:token #run the first spec in user_spec.rb that matches /token/ rake test:user:token #run all tests in user_test.rb that match /token/ rake test:last rake spec:last 
11
15 дек. Atsakymas duotas Zeke 15 d. 2009-12-15 21:29 '09 9:29 val. 2009-12-15 21:29

Ruby 1.9.2 ir Rails 3 turi paprastą būdą paleisti vieną specifikacijos failą:

   ruby -I spec spec / modeliai / user_spec.rb

Paaiškinimas:

  • Komanda
  • ruby paprastai būna greitesnis nei rake
  • -I spec priemonės "apima katalogą" spec "ieškant failų"
  • spec/models/user_spec.rb yra failas, kurį norime paleisti.
9
14 апр. Joelparkerhenderson atsakymas, pateiktas balandžio 14 d. 2011-04-14 06:05 '11, 6:05, 2011-04-14 06:05

Turiu sunkumų dirbant su bet kuriuo iš šių pavyzdžių, galbūt todėl, kad pranešimas yra pasenęs ir kad komandos pasikeitė?

Kai aš kalbėjau, aš jį rasiu:

rspec spec / models / user_spec.rb

Jis bus paleistas tik viename faile ir bus naudingas terminale.

5
01 марта '11 в 20:10 2011-03-01 20:10 atsakymą pateikė Greg Hemphill kovo 1 d. 11 val. 20:10 2011-03-01 20:10

specky.vim

4
11 янв. atsakymas pateikiamas fred 11 jan. 2009-01-11 09:22 '09 9:22 AM 2009-01-11 09:22

Taip pat pažvelkite į automatinį.

„AutoTest“ vykdymas komandų >

Pavyzdžiui, jei turite modelio specifikacijos failą pavadinimu person_spec.rb ir modelio failą, kurį jis nurodo vardu person.rb, tada, kai išsaugosite šiuos failus iš redaktoriaus, bus paleistas spec failas.

3
03 окт. atsakymą pateikė fatgeekuk 03 okt. 2008-10-03 12:12 '08, 12:12, 2008-10-03 12:12

Tarkime, jūs naudojate testą, kad galėtumėte sukurti tikrąją. Naudodami Crete_spec.rb failą visada galite paleisti šį konkretų specifikacijos kodą, kaip parodyta žemiau.

  rspec/spec/features/controller/spec_file_name.rb Example: Creating rspec spec/features/todos/create_spec.rb Editing rspec spec/features/todos/edit_spec.rb Deleting rspec spec/features/todos/destroy_spec.rb 

Jei norite paleisti visas specifikacijas vienu metu.

  rspec 

Jei norite paleisti visas konkrečios valdiklio naudotojo specifikacijas, tai yra.

  rspec/spec/feaures/controller_name Example: rspec/spec/features/todos 

Tikimės, kad tai suteiks jums daugiau įžvalgų!

2
08 дек. Pakuotojo 08 d. Atsakymas . 2014-12-08 13:43 '14, 13:43 2014-12-08 13:43

Norėdami paleisti visus savo rspec failus: rspec

Pastaba: turite būti projekto šaknis.

Norėdami paleisti vieną rspec failą: rspec 'path_to/spec.rb'

Pastaba: pakeiskite kelią „path_to / spec.rb“ savo keliu. Citatos ženklai yra neprivalomi.

Norėdami paleisti vieną rspec testą iš vieno failo: rspec 'path_to/spec.rb:7'

pastaba :: 7 - eilutės numeris, kur prasideda testas

1
02 нояб. atsakymas pateikiamas nikosolijai 02 lapkričio. 2017-11-02 00:44 '17 ne 0:44 2017-11-02 00:44

Nors į šį klausimą buvo parašyta daug puikių atsakymų, nė vienas iš jų nenaudoja Rspec tags .

Aš naudoju žymes, kad paleistumėte vieną ar daugiau specifikacijų skirtinguose failuose - tik tuos, kurie susiję su mano dabartine užduotimi.

Pvz., Pridedu žymą „dev“ su reikšme „dabartinis“:

 it "creates an user", dev: :current do user = create(:user) expect(user.persisted?).to be_truthy end 

tada aš paleisti

 bundle exec rspec . --tag dev:current 

Skirtingos žymės / vertės gali būti nustatytos atskirose specifikacijose arba grupėse.

0
15 мая '17 в 18:18 2017-05-15 18:18 Atsakymą duoda Viktoras BV gegužės 15 d. 17 val. 18:18

Žr. Kitus klausimus apie arba Užduokite klausimą