2012-08-09 11 views
10

javascriptのユニットテストにPhantomjsとJasmineを使用したいと思います。 Phantomjsのウェブサイトでは、これを処理するために別のもの、具体的にはPhantomJasmineを使用することを推奨しています。私はPhantomJasmineをダウンロードし、その例を実行しました。すべてが完全に行きました。その後、var system = require('system');行をexample_spec.jsの先頭に追加しました。私が "ReferenceError:変数を見つけることができません"という例題を実行しようとすると、Phantomjsはエラーをスローします。ですから、ブラウザを起動する必要がありますが、ジャスミンとphantomjsの構文を組み合わせることはできません。私はPhantomjsを使って純粋なジャスミンしか走らせることができません。両方を同じファイルで使用するにはどうすればよいですか? like:PhantomJS PhantomJasmineを使用しているときに「変数を見つけることができません」:

console.log('Loading a web page'); 
var page = new WebPage(); 
var url = "http://www.phantomjs.org/"; 
page.open(url, function (status) { 
    //Page is loaded! 
    describe("A suite", function() { 
     it("contains spec with an expectation", function() { 
     expect(true).toBe(true); 
     }); 
    }); 
    phantom.exit(); 
}); 

答えて

4

それはあなたがそれをどのように使用するべきではありません。ファントムを制御するコードは、ジャスミン仕様で混乱してはならず、その逆もありません。

スペックを.jsファイルに分割し、spec .jsファイルを読み込み、そのHTMLファイルをphantomjsで開くHTML仕様のランナーを使用して、標準のジャスミン設定を作成する必要があります。

もう1つの解決策は、ジャントミン仕様を自動的に実行するために、ファントムジャスミンとジャスミンを使用することです。

https://github.com/cowboy/grunt
https://github.com/creynders/grunt-jasmine-task

+0

私は私のファイルが区切られています。私は同じエラーが発生します。 htmlファイル内のheadタグの内容は、 ここで、execPage.jsには純粋なphantomjsコードが含まれており、jaztest1には純粋なジャスミンコードが含まれています。私はグランツも見た。ファントムjを使ってジャスミンを走らせることはもう一つのことです。 JasmineとPhantomjsのスクリプトを互いに実行する方法を知る必要があります。つまり、ページに移動し、ジャスミンを実行します。 – Hohohodown

+0

私は問題が改善していると思います。ここにシナリオがあります:私はいくつかのジャスミンテストであるtests.jsを持っています。 google.comに移動し、検索バーが表示されていることを確認します。 google.comにはジャスミンが含まれていません。これどうやってするの? – Hohohodown

+0

PhantomJSではなく、htmlページでジャスミンスクリプトを呼び出します。 ジャスミンテストを手動で実行し、そのHTMLページのURLをPhantomJSに渡してコマンドラインで実行する場合と同じように、基本的には正しく設定します。 – Creynders

関連する問題