rake: Testen Sie keine benutzerdefinierten Tests im Unterverzeichnis

8

Ich verwende Rails 4.0.0.beta1. Ich habe zwei Verzeichnisse hinzugefügt: app/services und test/services .

Ich habe diesen Code auch basierend auf hinzugefügt Test.Rake von Eisenbahnen :

%Vor%

Ich habe festgestellt, dass rake test:services die Tests in test/services ausführt; rake test führt diese Tests jedoch nicht aus. Es sieht so aus, als ob es sollte ; Hier ist der Code :

%Vor%

Habe ich etwas übersehen?

    
David J. 06.03.2013, 20:06
quelle

4 Antworten

11

Fügen Sie nach der Definition Ihrer Testaufgabe eine Zeile wie folgt hinzu:

%Vor%

Ich weiß nicht, warum sie nicht automatisch abgeholt werden, aber das ist die einzige Lösung, die ich für Test :: Unit gefunden habe.

Ich denke, wenn Sie rake test:all ausführen würden, würden Sie Ihre zusätzlichen Tests ausführen, aber rake test allein wird nicht ohne das obige Snippet.

    
Jim Stewart 06.03.2013, 21:00
quelle
4
___ answer15257928 ___

Fügen Sie nach der Definition Ihrer Testaufgabe eine Zeile wie folgt hinzu:

%Vor%

Ich weiß nicht, warum sie nicht automatisch abgeholt werden, aber das ist die einzige Lösung, die ich für Test :: Unit gefunden habe.

Ich denke, wenn Sie Rails::TestTask ausführen würden, würden Sie Ihre zusätzlichen Tests ausführen, aber Rake::TestTask allein wird nicht ohne das obige Snippet.

    
___ qstnhdr ___ rake: Testen Sie keine benutzerdefinierten Tests im Unterverzeichnis ___ answer24393784 ___

Jims Lösung funktioniert, aber letztendlich wird die zusätzliche Testsuite als separate Aufgabe ausgeführt und nicht als Teil des Ganzen (zumindest unter Verwendung von Rails 4.1). Teststatistiken werden also zweimal statt aggregiert ausgeführt. Ich denke nicht, dass dies das gewünschte Verhalten ist.

So habe ich das Problem gelöst (mit Rails 4.1.1)

%Vor%

Dies führt zu genau erwartetem Verhalten, indem einfach die neue Aufgabe run in die Aufgabe aufgenommen wird, die von %code% ausgeführt wird, und natürlich der Standard %code% . Sie können diesen Ansatz verwenden, um auf diese Weise beliebig viele neue Testsuiten hinzuzufügen.

Wenn Sie Rails 3 verwenden, kann ich nur nach %code% wechseln.

    
___ answer24748575 ___

Oder führen Sie einfach %code%

aus

Wenn Sie alle Tests standardmäßig ausführen möchten, überschreiben Sie die Testaufgabe:

%Vor%     
___ tag123rubyonrails ___ Ruby on Rails ist ein Open-Source-Full-Stack-Webanwendungs-Framework, das in Ruby geschrieben ist. Es folgt dem populären MVC-Framework-Modell und ist bekannt für seinen "convention over configuration" -Ansatz für die Anwendungsentwicklung. ___ tag123testing ___ Softwaretesten ist eine Aktivität, die darauf abzielt, ein Attribut oder eine Fähigkeit eines Programms oder Systems zu bewerten und festzustellen, dass es die erforderlichen Ergebnisse erreicht. ___ tag123rubyonrails4 ___ Für Probleme, die für Version 4 von Rails spezifisch sind. Wenn Ihre Frage generell auf Ruby on Rails zutrifft, verwenden Sie das Tag [ruby-on-rails]. ___ tag123testunit ___ Test-Unit ist eine Unit-Test-Bibliothek in Ruby. Es war Teil der Standardbibliothek in Ruby 1.8, und es gibt eine Kompatibilitätsschicht in der Standardbibliothek von Ruby 1.9. ___ qstntxt ___

Ich verwende Rails 4.0.0.beta1. Ich habe zwei Verzeichnisse hinzugefügt: %code% und %code% .

Ich habe diesen Code auch basierend auf hinzugefügt Test.Rake von Eisenbahnen :

%Vor%

Ich habe festgestellt, dass %code% die Tests in %code% ausführt; %code% führt diese Tests jedoch nicht aus. Es sieht so aus, als ob es sollte ; Hier ist der Code :

%Vor%

Habe ich etwas übersehen?

    
___
ybart 25.04.2014 13:52
quelle
3

Jims Lösung funktioniert, aber letztendlich wird die zusätzliche Testsuite als separate Aufgabe ausgeführt und nicht als Teil des Ganzen (zumindest unter Verwendung von Rails 4.1). Teststatistiken werden also zweimal statt aggregiert ausgeführt. Ich denke nicht, dass dies das gewünschte Verhalten ist.

So habe ich das Problem gelöst (mit Rails 4.1.1)

%Vor%

Dies führt zu genau erwartetem Verhalten, indem einfach die neue Aufgabe test:extras in die Aufgabe aufgenommen wird, die von rake test ausgeführt wird, und natürlich der Standard rake . Sie können diesen Ansatz verwenden, um auf diese Weise beliebig viele neue Testsuiten hinzuzufügen.

Wenn Sie Rails 3 verwenden, kann ich nur nach Rake::TestTask wechseln.

    
Chris Nicola 24.06.2014 18:29
quelle
3

Oder führen Sie einfach rake test:all

aus

Wenn Sie alle Tests standardmäßig ausführen möchten, überschreiben Sie die Testaufgabe:

%Vor%     
Rodrigo 15.07.2014 01:26
quelle