2012-08-09 59 views
10

我想使用Phantomjs和Jasmine進行單元測試javascript。 Phantomjs的網站建議我使用單獨的東西來處理這個問題,特別是PhantomJasmine。我下載了PhantomJasmine並運行了這個例子。一切都很完美。然後,我將這一行var system = require('system');添加到example_spec.js的頂部。當我嘗試運行示例時,Phantomjs現在引發錯誤「ReferenceError:Can not find variable:require」。所以,我想要做一些事情,比如啓動瀏覽器,但看起來我不能將茉莉花和phantomjs語法結合起來。我只能用Phantomjs運行純粹的茉莉花。我怎樣才能在同一個文件中使用兩者?像: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

這不是你應該如何使用它。控制phantomjs的代碼不應該與茉莉花規格混淆,反之亦然。

您應該將您的規格分成.js文件,並使用加載規格.js文件並在幻影中打開該HTML文件的HTML規格運行器創建標準茉莉花設置。

另一種解決方案是使用grunt with phantomjs和jasmine自動運行茉莉花規格。

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

+0

我有我的文件分隔。我犯了同樣的錯誤。我的head標籤在html文件中的內容是: 其中execPage.js包含純幻影代碼,jaztest1包含純茉莉代碼。我也研究過Grunt。這只是另一個運行茉莉花幻影js。我需要知道如何與彼此運行Jasmine和Phantomjs腳本。即:導航到頁面,執行茉莉花。 – Hohohodown 2012-08-10 17:00:09

+0

我想我會更好地解決問題。這裏是場景:我有一些茉莉花測試的tests.js。我想導航到google.com,並檢查以確保搜索欄顯示。 google.com沒有任何茉莉花包括。我怎樣才能做到這一點? – Hohohodown 2012-08-10 17:36:47

+0

在html頁面中調用茉莉花腳本,而不是通過PhantomJS。 基本上,您可以像設置手動一樣準確地設置它,然後只需將該HTML頁面的URL傳遞給PhantomJS以在命令行中運行即可。 – Creynders 2012-08-13 08:18:59

相關問題