2016-02-29 35 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

感谢您的回复。但我仍然无法实现我的目标。 你能否给我一个例子,说明如何将这段代码(问题中更新的代码示例)放到子测试类中并在需要时调用它? –