2014-01-13 41 views
5

錯誤:Casperjs「casper.test屬性僅可使用`casperjs test`命令」,而不是叫卡斯帕測試

casper.test property is only available using the `casperjs test` command 

搜查我的整個代碼庫「casper.test」,「this.test 「,」@test「等等,都不存在。查看casper代碼,需要觸發其中一個引發此錯誤的提示。

錯誤是間歇性的,只發生在一些casper運行中。有沒有其他人得到這個錯誤?我正在運行1.1.0-beta3

回答

4

你有沒有像這樣啓動你的腳本?

casperjs test yourScript.js

+0

不,我只是使用'casperjs script.js' – maxko87

+0

如果使用'casperjs測試yourScript.js',它會導致一個錯誤'致命的:你不能覆蓋預先配置的casper實例在測試環境中。' –

9

您可以在測試文件的頂部添加

phantom.casperTest = true; 

+0

它工作給我! – andrepm

+0

即使它有效,我也不喜歡這個解決方案。這聽起來像「測試」和非測試是分開的原因。如果你不使用測試,你不應該這樣做。我錯了嗎?我花了一段時間才知道是什麼導致了我的。你可能不得不忽視它或爲它製作一個特殊的處理程序。 –

0

它與啓動它無關。不知道爲什麼,但在寫入文件之前,我還在我的代碼中收到了此錯誤。它刪除後刪除...

JSON.stringify(obj); 

同樣,我不知道是什麼造成了這個問題。它可能是別的東西導致你的。但是如果你發現哪一段代碼導致它,我有一個解決方案。

我的解決方案: 使用基本變量開關的錯誤處理程序,並關閉該部分步驟的錯誤日誌。

casper.on("error", function(err) { 
    if(custLog) {console.log(err);} //log the error 
}); 

和步驟...

casper.then(function() { 
    custLog = false; 
    fs.write(fileName, JSON.stringify(content), 'w'); 
    custLog = true; 
}); 

您可能會或可能不會需要在那裏訂購訂貨內堆棧。