10 Stimmen

Jasmine mit jscoverage automatisierte Tests

Ich habe mir die Demos von jsunit und jcoverage angesehen. ici ( klicken Sie auf den Link zum Bericht über die Berichterstattung. Öffnen Sie diesen in einer neuen Registerkarte) .

Ich habe mich gefragt, ob jemand etwas Ähnliches mit Jasmine und JSCoverage gemacht hat? Ich bin ein wenig unsicher, wie ich vorgehen soll.

[EDIT] Ich frage mich, ob es etwas gibt, das ich mit einem Jasmine-Reporter tun kann. Mein Jasmine "hello world" Beispiel verweist auf einen TrivialReporter. Vielleicht kann das erweitert werden?

[EDIT] Ich habe js-test-runner mit Jasmine jetzt verkabelt. Wenn ich jetzt einen Weg finden könnte, um Abdeckung zu bekommen?

4voto

hjdivad Punkte 388

Wenn Sie an einem Ruby-Projekt arbeiten und Jasmine über Jasmine-gem verwenden, habe ich einen Patch, der jscoverage-Unterstützung hinzufügt[1].

Wenn Sie Bundler verwenden, können Sie diese Version von Jasmine mit dem folgenden Befehl in Ihrem Gemfile :

  gem 'jasmine',
    :git        => 'git://github.com/hjdivad/jasmine-gem',
    :submodules => true,
    :branch     => 'jscoverage'

Vergewissern Sie sich, dass Sie jscoverage heruntergeladen haben und es sich in Ihrem $PATH .

Sie können dann Folgendes hinzufügen jasmine.yml

coverage:
  enabled:    true
  encoding:   utf-8
  tmp_dir:    tmp
  report_dir: public/coverage
  skip_paths:
    - public/javascripts/vendor

Wenn das für Sie funktioniert, können Sie sich auf den Pull-Request[2] melden, um es, oder eine Variation, in jasmine-gem selbst zu erhalten.

1 Stimmen

Wenn du nicht an einem Ruby-Projekt arbeitest, solltest du in der Lage sein, einen Blick auf die beiden Commits in der Pull-Anfrage zu werfen und das Zeug zu extrahieren, das du für ein eigenständiges Js-Projekt brauchst. 1. Kopieren Sie jscoverage.js und fügen Sie es als Hilfsprogramm hinzu. 2. Beim Ausführen von Tests i. führe jscoverage aus, um dein Javascript zu instrumentieren und lege die instrumentierten Dateien in ein Verzeichnis. ii. lasse Jasmine gegen dieses Verzeichnis laufen iii. Nachdem die Tests abgeschlossen sind, speichern Sie die Ergebnisse von jasmine.coverageReport() como jscoverage.json iv. die erzeugten Daten zu ändern jscoverage.js anhängend jscoverage_isReport = true; am unteren Ende.

1voto

hlascelles Punkte 1001

Wenn Sie das Jasmine-Gem nicht verwenden oder keinen Server zum Überprüfen der Abdeckung laufen lassen wollen, habe ich ein Gem geschrieben, das jscoverage und Jasmine zusammenführt. Es kann als Rake-Task in Ihren CI-Builds laufen.

Sie ist hier zu finden: https://github.com/firstbanco/jasmine-coverage

Installieren Sie es und führen Sie dann einfach

bundle exec rake jasmine:coverage

Sie sind fertig.

EDIT: Als Autor von jasmine-coverage fühle ich mich verpflichtet, Sie auf eine bessere Alternative hinzuweisen: Teelöffel . Es erfordert mehr Einstellungen, ermöglicht aber auch die Ausführung im Browser, sodass Sie den Chrome-Debugger verwenden können.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X