Umwelt in test_helper.rb Rake Aufgaben zu testen: Kann ich Aufgabe außer Kraft setzen?

StackOverflow https://stackoverflow.com/questions/925407

  •  06-09-2019
  •  | 
  •  

Frage

Ich habe eine Reihe von Rake Aufgaben in einem Rakefile die ich als Teil meiner Brille testen möge usw. Jede Aufgabe in Form definiert ist:

task :do_somthing => :environment do
  # Do something with the database here
end

Wenn das: Umwelt Aufgabe, eine Activerecord / DataMapper Datenbankverbindung und Klassen einrichtet. Ich bin nicht dazu in der Rails, aber ich habe eine Reihe von Tests, die Ich mag als Teil von BDD auszuführen.

Dieser Code-Schnipsel zeigt, wie ich versuche, die Rake-Aufgaben zu testen.

def setup
  @rake = Rake::Application.new
  Rake.application = @rake
  load File.dirname(__FILE__) + '/../../tasks/do_something.rake'
end

should "import data" do
  @rake["do_something"].invoke
  assert something_in_the_database
end

Also meine Bitte um Hilfe - ist es möglich, die über-ride: Umwelt Aufgabe in meiner test_helper.rb Datei, damit ich meine Harke Tests mit der Datenbank meines Tests in Wechselwirkung treten, anstatt die Produktion? Ich habe versucht, die Aufgabe in der Helfer-Datei neu zu definieren, aber das funktioniert nicht.

Jede Hilfe für eine Lösung wäre toll, wie ich habe auf diesem für die vergangene Woche aufgeklebt.

War es hilfreich?

Lösung

Meine „Lösung“ zu einem ähnlichen Problem war die gesamte Logik aus meinen .rake Dateien zu extrahieren und Klassen erstellen, um die Aufgaben zu erfüllen, so dass nur einen einzeiligen Anruf in der Rake-Datei, die ich sicher gefühlt in nicht zu testen hart. Die Klassen können dann ziemlich normal getestet werden.

Ich weiß nicht, wie gut dies zu einem komplexen Satz von voneinander abhängigen Aufgaben, die einen weitreichende Zustand zu halten aufstehen würde: wahrscheinlich nicht gut, aber dann wieder, dass die meisten wahrscheinlich ein Hinweis auf einem anderen Design-Problem wäre .. .

Ich bin gespannt, ob ich besser etwas verpasst haben.

EDIT: Es verwendet eine Blog-Post sein hier , dass (a) sagt dasselbe und (b) sagt, es ist besser. Sieht aus wie er sagte, es zuerst auch.

Andere Tipps

Ich glaube, Sie für diese Linie suchen: erfordern (File.join (RAILS_ROOT, 'config', 'Umwelt')) es ist genau das, was Sie in finden „Aufgabe: Umwelt“ Implementierung

Ich benutze es meine Rake Aufgaben zu testen rspec mit

Wenn Sie Tests Umgebung ausgeführt ist, dass geladen wird, ist Test.

  

, so dass Sie mit Test interagieren   Datenbank nur.

Also ich sehe nicht, aus irgendeinem Grund Ihre Rake Aufgabe in test_helper.rb außer Kraft zu setzen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top