簡體   English   中英

在PhantomJS中從Ant運行異步QUnit測試

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM