[英]Running asynchronous QUnit tests from Ant in PhantomJS
我正在嘗試使用PhantomJS從Ant構建腳本中獲取一組異步QUnit測試以運行。 我似乎正在工作,但似乎應該有更好的方法來實現它。
加載PhantomJS時運行的腳本(簡體)如下:
var page = require("webpage").create();
page.onConsoleMessage = function(msg) {
if(msg.indexOf("FINISHED") > -1) {
var failed = msg.split(" ");
phantom.exit(failed[1]);
}
};
page.open("testrunner.html", function() {
page.evaluate(function() {
QUnit.done = function(result) {
console.log("FINISHED " + result.failed);
};
});
});
這將加載包含測試的文件( testrunner.html
)。 它使用PhantomJS evaluate
方法在加載的頁面的上下文中運行一些代碼。 該代碼將事件處理程序綁定到QUnit done
事件。 在事件處理程序中,所有發生的事情都是對console.log
的簡單調用。
PhantomJS默認情況下對console.log
調用不執行任何操作,因此我還將事件處理程序綁定到PhantomJS onConsoleMessage
事件。 當執行QUnit.done
事件處理程序中的console.log
調用時,將觸發onConsoleMessage
事件。 如果控制台消息與給定的字符串匹配,那么我們知道測試已完成運行。 然后,我們可以退出PhantomJS,退出代碼等於失敗的單元測試的數量(Ant腳本使用它來確定構建的這一部分是否成功)。
我的問題是,是否有更好的方法來找出單元測試何時完成運行?
您是否已檢查了幻影js網站上提供的qunitRunner? https://github.com/ariya/phantomjs/blob/1.2/examples/run-qunit.js
本質上,您只需將其指向qunit測試頁(testrunner.html),然后便會刮取該頁面以查看是否有任何失敗並將結果輸出到控制台。 您可以修改它以打印到文件,然后可以將其集成到構建腳本中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.