2012-10-03 81 views
5

我正在嘗試爲AngularJS項目編寫單元測試。該項目基於angular-seed並使用Testacular運行測試。每次運行test.sh腳本的嘗試總是以「執行0的0成功」結束。AngularJS + Testacular/Jasmine單元測試:執行0或0 SUCCESS

我想這個超級簡單的「試驗」:

describe('Testing Jasmine', function() { 
    console.log('describe'); 
    var test = 'test'; 

    it('should be test', function() { 
    console.log('it'); 
    expect(test).toEqual('test'); 
    }); 
}); 

的結果是隻有「描述」登錄時,「它」的部分被跳過。當我在乾淨的角種子克隆上嘗試相同的東西時,所有的工作都是有效的 - 所以我認爲Testacular和Jasmine的測試系統本身工作正常。 我們的項目是基於Rails的,但是我在比較測試的乾淨的角度種子在Apache上運行,所以我認爲這可能是不同之處 - 在Rails項目中混淆了路徑或其他東西。

但是沒有錯誤信息,e2e測試工作......還假設如果某些文件丟失或路徑不正確,它將無法在測試中記錄'描述' - 如果我理解正確意味着Jasmine正在處理正確的文件(在這個僞測試中沒有其他依賴關係)。 'describe'部分工作得很好,只有'it'部分似乎被跳過了嗎?

任何提示或幫助,將不勝感激。

+0

您是否試圖對e2e測試和單元測試重新使用相同的配置?如果是這樣,爲e2e和單元測試創​​建一個單獨的配置。這正是它在角手機教程中的描述。退房https://github.com/vojtajina/testacular/issues/66 – Vojta

回答

1

請檢查Javascript文件的順序。

在Testacular和reordering the js files fixed the problem中報告了類似的問題。

+0

我不知道爲什麼這個答案是downvoted。我有完全相同的症狀,我能夠通過查看JavaScript文件的加載順序(在我的測試配置文件中) – user35559

+0

鏈接已經腐爛來解決它。 – ReactiveRaven

2

e2e在測量方面的測試還有很長的路要走。我一直在努力。事實證明,期望的左側必須是角度文檔中定義的方法之一:http://docs.angularjs.org/guide/dev_guide.e2e-testing

下面是一個例子

describe('Testing Jasmine', function() { 

    it('should be test', function() { 
    expect(element('foo').count()).toEqual(1); 
    }); 

}); 

記住,如果你沒有在規定的方法之一進入調用到期望的那樣,testacular不會運行「它」

1

另外,還要確保你具有這些屬性頁上使用您正在測試的一個:

'ng:app', 'ng-app', 'x-ng-app', 'data-ng-app' 

因爲如果功能angularInit()不會與這些論點找到一個元素亞軍贏得」開始。

這是espcially重要的,如果你想在不具有NG-應用webage使用的角​​度測試運行 - 與當前版本,它只是將無法正常工作。

6

如果您正在進行單元測試,請不要在您的testacular配置文件中包含angular-scenario.js文件。這將打破單元測試。

+0

賓果。 angular-seed回購包括testacular.conf.js中的'app/lib/angular/angular - *。js' - 並刪除該行修復了我的問題。 – arthurakay

+0

或者添加: exclude = ['assets/js/lib/angular-scenario.js']; – vladexologija