relativer Dateipfad in RSpec

7

Ich habe einen RSpec-Test für eine Klasse in /lib/classes , der Zugriff auf eine Zip-Datei benötigt (kein Upload). Die Datei wird in /spec/fixtures/files/test.zip gespeichert. Wie gebe ich den richtigen Pfad ein, so dass seine Umgebung unabhängig von der Pfadangabe ist?

    
wintersolutions 19.02.2012, 00:11
quelle

3 Antworten

4

Soweit ich weiß (von jedem Monat oder zwei), gibt es keinen besseren Weg, etwas in spec_helper zu erstellen, das den __FILE__ -Wert verwendet, um den Pfad zu einem Wissensbestand zu finden und dann einen eigenen zu erstellen Helfer dazu.

Sie können natürlich auch einen Pfad relativ zu __FILE__ in der einzelnen *_spec.rb -Datei verwenden.

    
Daniel Pittman 19.02.2012, 00:15
quelle
13

Rails.root gibt dir die App root, also

%Vor%

gibt Ihnen den absoluten Pfad Ihrer Datei, unabhängig vom Speicherort der App auf Ihrer Festplatte.

    
Evan Drewry 03.09.2013 15:43
quelle
1

Ich habe dieses Problem kürzlich angegangen und hier ist, was ich gefunden habe:

Definieren Sie eine Konstante in Ihrer spec_helper.rb (oder gleichwertig), die auf RSpec root zeigt:

%Vor%

Verwenden Sie diese Variable in Ihren *_spec.rb (oder äquivalenten) Testdateien:

%Vor%

Warum diese Lösung?

  • Es wird nicht der Speicherort der Testdatei verwendet, der sein könnte Änderungen vorbehalten (spec_helper ist wahrscheinlich nicht)
  • Es müssen keine weiteren Dateien als die bereits vorhandenen Dateien hinzugefügt werden %Code%
  • Es hängt nicht von Rails ab (im Gegensatz zu require 'spec_helper' )

Hier ist ein Gist: Ссылка

    
thisismydesign 26.04.2017 13:03
quelle