webentwicklung-frage-antwort-db.com.de

Ruby on Rails: Wechsel von test_unit zu rspec

Ich gehe ein Tutorial durch, in dem die Verwendung von rspec vorgeschlagen wurde, aber ich habe bereits viele Standardinstallationen durchlaufen Rails). Ich möchte wirklich nicht wiederholen müssen Die Installation überhaupt. Wie auch immer, wenn ich renne

$ Rails g integration_test named

Ich bekomme

  invoke  test_unit
  create    test/integration/named_test.rb

Wenn ich bundle starte, werden verschiedene rspec Edelsteine ​​aufgelistet, aber test_unit Nicht. Das Tutorial scheint Rails rspec anstelle von test_unit Aufzurufen, ohne etwas anderes zu tun. Wie komme ich zu Rails) rspec mit dem Befehl des Integrationstestgenerators verwenden?

68
Explosion Pills

In deiner config/application.rb Datei :

config.generators do |g|
  g.test_framework :rspec
end

Wenn Sie jetzt Ihre Generatoren betreiben (Beispiel Rails generate scaffold post) erhalten Sie rspec-Testdateien. Denken Sie daran, Ihren Server neu zu starten. Weitere Informationen zu Generatoren finden Sie unter:

RailsCasts # 216 Generatoren in Rails

Wenn Sie den integration_test-Generator wirklich verwenden möchten, müssen Sie den Befehl speziell ändern:

Rails g integration_test named --integration-tool=rspec
99
Spyros

Bei der Arbeit mit Rails 3.2.8 und rspec-Rails 2.11.4 habe ich festgestellt, dass mein Problem in meinem Gemfile liegt. Ich hatte rspec-Rails In der Gruppe :test, Aber nicht die Gruppe :development. Da Rails standardmäßig im Entwicklungsmodus ausgeführt wird (auch wenn Sie generate ausführen), muss rspec-Rails In Ihrer :development - Gruppe sein, damit es eingebunden werden kann die Generatoren. Sobald ich das an Ort und Stelle hatte, funktionierte alles gut.

69
tovodeverett

Führen Sie ab Rails 3.2.12 diese Schritte der Reihe nach aus

Rails new app_name --skip-test-unit

Fügen Sie Ihrem Gemfile in der Entwicklungs-, Testgruppe rspec-Rails hinzu

group :development, :test do
  gem 'rspec-Rails'
end

Lauf bundle install

Den Generator laufen lassen

Rails generate rspec:install

... und bereinige dein bestehendes Testverzeichnis:

rm -Rf $Rails_ROOT/test    
28
fontno

Kam heute über dieses Problem. application.rb muss aktualisiert werden mit:

config.generators do |g|
  g.test_framework :rspec
  g.integration_tool :rspec
end
8
iRonin

Führen Sie den folgenden Befehl aus, um RSpec anstelle des Standardwerts für Test :: Unit zu verwenden

$ Rails generate rspec:install

Dieser Befehl erstellt folgende Ordner/Dateien

create  .rspec
create  spec
create  spec/spec_helper.rb

Wenn Sie jetzt mit Generator Rails Komponenten wie Controller, Modell usw. erstellen, werden entsprechende RSpecs erstellt.

8
Amit Patel

1. Wenn Sie eine neue Rails App erstellen, überspringen Sie das TestUnit-Framework. Andernfalls wird das Verzeichnis test_unit generiert.

$Rails new your_app --skip-test-unit

2. Fügen Sie folgenden Code zu Ihrer Datei_app/config/application.rb hinzu:

config.generators do |g| g.test_framework :rspec end

3. Füge folgenden Code zu deiner_App-Gemdatei hinzu:

group :test, :development do gem 'rspec-Rails' end speichere es und starte bundle install um rspec gem zu installieren

4. Initialisieren Sie das Verzeichnis spec /

Rails generate rspec:install

weitere Details finden Sie unter: https://github.com/rspec/rspec-Rails

2
xautjzd

Fügen Sie in config/application diesen Code hinzu

 config.generators do |g|
       g.test_framework  :rspec
       g.integration_tool :rspec
 end
2
Amrit Dhungana
$ Rails g model Account
      invoke  active_record
      create    db/migrate/20140205052617_create_accounts.rb
      create    app/models/account.rb
      invoke    test_unit
      create      test/models/account_test.rb
      create      test/fixtures/accounts.yml
$ Rails d model Account

Das Ausführen von Skript/Rails generiert rspec: install fügt rspec nicht als Standardframework hinzu. Hinzugefügt unter Befehl in config/application.rb und dann funktioniert es

config.generators do |g|
  g.test_framework :rspec
end
$ Rails g model Account
      invoke  active_record
      create    db/migrate/20140205052957_create_accounts.rb
      create    app/models/account.rb
      invoke    rspec
      create      spec/models/account_spec.rb
$ Rails -v
Rails 4.0.2
1
Abhishek Bose

Was ich herausgefunden habe, dass ich getan habe, dass einige der anderen Methoden immer noch funktionieren, ist, meine Rechtschreibung zu überprüfen. Das hat mein Problem behoben, aber ich habe Tests mit test_unit anstelle von rspec generiert.

1
zigloo99