2016-02-29 82 views
0

我已經安裝了siesta lite來測試我的ExtJs 4應用程序。 我想運行一個測試,取決於我的應用程序的window.xxx和window.yyy的值。 所以如果xxx = 1和yyy ='xyz',我想運行一個特定的測試文件讓我們說test1.js。我讀了siesta documentation但我找不到任何東西。Siesta - 根據一定的條件運行子測試(從另一個測試文件)

這裏是我的代碼:

var harness = new Siesta.Harness.Browser.ExtJS() 
window.harnessObj = harness; 
harness.configure({ 
    title    : 'My Tests', 
    preload : [ 
     /* '../resources/extjs-4.2/resources/css/ext-all.css', 
     '../resources/extjs-4.2/ext-all-debug.js', 
     '../resources/json/textLabels.js',*/ 
    ] 
}); 

harness.start(
    { 
     group: 'Unit Tests', 
     pageUrl: '../index.html?unittest', 
     items: 
     [ 
      { 
       title : 'PopUpWindow', 
       url : 'tests/PopUpWindow.js' 
      }, 
      { 
       title : 'S_0-R_PjM', 
       url : 'tests/S_0-R_PjM.js' 
      } 
     ] 
    } 
); 

harness.on('testsuitestart', function (event, harness) 
    { 
     //debugger; 
     console.log('I fucking love Testing') 
    }, this, 
    { single : true } 
) 

我想運行「測試/ S_0-R_PjM.js」裏面,這取決於窗口的某個值對象,它是設置「測試/ S_0-R_PjM.js」由我的應用程序index.html。

我index.js看起來像這樣:// 還支持:startTest(函數(T){

describe(function(t) { 
    t.diag("PfalzkomApp Loading Test"); 

    t.ok(Ext, 'ExtJS has been loaded'); 
    t.ok(Ext.Window, 'ExtJS.Window has been loaded'); 
    t.ok(window.xxx, loaded with value :' + window.xxx); 
    t.ok(window.yyy, loaded with value :' + window.yyy); 

    var status = parseInt(window.xxx); 
    var role = window.yyy; 

    switch(status) { 
    case 111: 
     switch(role) 
     { 
      case "abc": 
       debugger; 
       // How to load another test file(tests/S_0-R_PjM.js) and start that test here !!!  
       break; 
      case "def": 

       break; 
     } 
    } 

    t.done(); 
}) 

//更新問題 - 我希望把裏面的另一測試文件,示例代碼和需要

StartTest(function(t) { 
    t.diag("Case: Status: Neu and Role:PjM "); 
    //S_0-R_PjM 
    t.ok(Ext, 'ExtJS has been loaded'); 

    t.done(); // Optional, marks the correct exit point from the test 
}) 

當有一個人可以指導我打電話了嗎?

+1

只需將'it()'包裝在if語句中即可。 –

+0

@EvanTrimboli我想加載另一個測試文件。我不想將所有代碼寫入一個文件。那麼如何實現呢?謝謝 –

回答

1

我不知道在T任何內建功能他利用可以幫助你實現的文件。

但是,如果你真的不想讓所有的代碼都在一個文件中,你可以使用TestClass - 通過這個你可以將代碼放在不同的文件中。

http://www.bryntum.com/docs/siesta/#!/guide/extending_test_class

請記住,這將不會加載不同的「測試」。您的Siesta界面中仍然會有1個測試文件,但它會根據您的if語句執行不同的代碼。

+0

感謝您的回覆。但我仍然無法實現我的目標。 你能否給我一個例子,說明如何將這段代碼(問題中更新的代碼示例)放到子測試類中並在需要時調用它? –

相關問題