Rails-Tests mit 0% bestanden, wenn alle bestanden wurden

8

Meine App "Rails" besteht ihren Test, sagt aber, dass 0% bestanden haben. Es ist eine Rails 3 App, die in 3.1 konvertiert wurde.

%Vor%

Wenn ich eine neue Rails 3.1 App erzeuge, hat sie diese "bestandene" Zeile nicht.

%Vor%

Beide laufen unter 1.9.2 p290.

Ich habe versucht, die Testeinheit zu entfernen, aber das schien keinen Unterschied zu machen, und mir fällt nichts anderes auf, das das verursachen würde. Ich denke, dass etwas den Einsatz eines anderen Testläufers auslöst.

Dies sind die Edelsteine, die für meine App installiert sind:

%Vor%

Und das ist, was ich mit der Standard-Schiene new'd App

bekomme %Vor%

BEARBEITEN

Ich habe alles aus der App ausgeschnitten und schob es nach github - Ссылка Wenn ich nur "Rake" starte, bekomme ich immer noch 0%:

%Vor%     
Chris Kimpton 09.10.2011, 20:54
quelle

4 Antworten

9

Wenn Sie test-unit mit Rails verwenden, können Sie nichts tun. Ich glaube, es ist ein Fehler in activesupport gem, der mit Rails kommt. Ausführlicher:

Normalerweise hat test-unit eine Methode add_pass , die die Anzahl der bestandenen Tests erhöht. Dies wird in run(...) method ( testcase.rb file) aufgerufen. % Co_de% blendet / überschreibt diese Methode jedoch mit einer eigenen Implementierung. Es ist die Methode activesupport in der Datei run(...) (Der vollständige Name der Methode ist setup_and_teardown.rb .

Ich habe diese Methode wie folgt geändert:

%Vor%

Ich habe ActiveSupport::Testing::SetupAndTeardown::ForClassicTestUnit#run() hinzugefügt, was nicht dort war, und jetzt sollten die Prozentsätze in Ordnung sein.

UPDATE : Um Ihnen zu helfen, diese Änderung zu integrieren und zu testen / zu sehen, können Sie ein Gist, das ich erstellt habe, mit dem folgenden Befehl klonen:

%Vor%

Dies erstellt eine Datei mit dem Namen: result.add_pass

Verschiebe das in deinen active_support_test_unit_pass_count.rb Ordner wo test Datei ist und fordere es in deiner test_helper.rb Datei, genau vor der Definition der test_helper.rb Klasse:

%Vor%

Führen Sie dann Ihre Tests durch und sehen Sie das prozentuale Ergebnis. Für mich ... es hat gut funktioniert.

    
p.matsinopoulos 29.10.2011, 14:29
quelle
1

Entfernen Sie die Testeinheit und installieren Sie den Mini-Test. In deinem Gemfile:

%Vor%     
WattsInABox 25.10.2011 18:32
quelle
1

Ich bin auf einer alten Rails 3.2.22 App darüber gestolpert. Ich fand eine einfachere Lösung als oben (oben gab mir andere Fehler, da es Annahmen über Versionen usw. macht). Ich habe test-unit-rails gem zu meiner gemfile hinzugefügt, für mich musste ich es auf Version 1.0.4 sperren, da es die Version der Test-Unit unterstützte, die ich vorher benutzt habe.

In meiner test_helper.rb Datei habe ich hinzugefügt:

%Vor%

Hier ist die Dokumentation, von der ich es gefunden habe. Insbesondere ist es ein Active-Support-Plugin für Test-Unit.

    
jQwierdy 10.11.2017 21:11
quelle
0

Ich denke, es könnte ein Problem mit der Zeitklasse geben.

    
bilash.saha 29.10.2011 11:22
quelle