2013-05-08 15 views
15

Momentan verwende ich PhantomJS zum Ausführen von Javascript-Unit-Tests in QUnit und Sinon Framework auf unserem Build-Server.Javascript Unit Tests mit V8

Aber PhantomJS verwendet JavaScriptCore mit JIT-Compiler als seine Javascript-Engine. Stattdessen möchte ich die V8-Engine verwenden, die in Google Chrome verwendet wird, oder Chakra, die in IE verwendet wird. Ich möchte dies tun, weil ich die Plattformkompatibilität für den Code überprüfen möchte.

Gibt es beliebte Testläufer wie PhantomJS, die diese Motoren verwenden?

Antwort

11

Die nächste, die ich denken kann, ist Zombie.js, die ein kopfloser Browser in Javascript geschrieben ist, die unter Node.js ausgeführt wird.

Es ist kein echter Browser in der Art, wie Phantom ist, also gibt es Dinge, die Sie nicht mit Phantom machen können, aber da es Node.js verwendet, verwendet es offensichtlich die V8-Motor, so erfüllt es Ihre Kriterien.

Aber wenn Sie wirklich in allen verschiedenen Suchmaschinen des Browsers testen möchten, ist Ihre andere Option natürlich, einen echten Browser zu verwenden. Sie müssen keine sichtbare Benutzeroberfläche dafür haben. Verwenden Sie ein Tool wie Selenium oder Sahi, das den Browser über ein Skript starten und ausführen und in einer VM ausführen kann; du musst es nie sehen. Es kann nicht so schnell sein wie mit Phantom, aber es wird ein echter Test sein, die eindeutig ist, was Sie wirklich interessiert sind.

[EDIT]
Worth Hinzufügen einer Anmerkung zu dieser Antwort, weil ich vor kurzem erfahren Sie über SlimerJS, das ist ein Open-Source-Projekt mit dem Ziel, einen PhantomJS-kompatiblen Browser, der die Gecko-Engine verwendet, zu produzieren. Auch dies ist nicht genau das, was in der Frage verlangt wurde, aber es ist im Geiste davon; Es ist großartig, ein anderes Tool zur Verfügung zu haben, das das plattformübergreifende Testen erleichtert.