如何在Rally sdk中创建包含TestSet名称的下拉列表

时间:2013-06-18 05:37:28

标签: rally

我正在尝试创建名为TestSet的下拉列表。我需要它用于过滤目的。 我试过以下代码:

     function dropdownChanged(dropdown, eventArgs) {
       var selectedItem = eventArgs.item;
       var selectedValue = eventArgs.value;
     }

     function onLoad() {
       var rallyDataSource = new rally.sdk.data.RallyDataSource('__WORKSPACE_OID__',
                                                             '__PROJECT_OID__',
                                                             '__PROJECT_SCOPING_UP__',
                                                            '__PROJECT_SCOPING_DOWN__');
       var config = {
           type : "testset",
           attribute : "name"
         };

       var attributeDropdown = new rally.sdk.ui.AttributeDropdown(config,       rallyDataSource);
      attributeDropdown.display("aDiv", dropdownChanged);
    }

     rally.addOnLoad(onLoad);

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

您可以使用“对象下拉”而不是“属性下拉列表”。在此代码中,从属性下拉列表中选择测试集会产生一个填充了所选测试集的测试用例的表。

     <script type="text/javascript" src="https://rally1.rallydev.com/apps/1.32/sdk.js"></script>
    <script type="text/javascript">
       var table = null;

       function showTable(results) {

        var t = " ";


         var tableConfig = {
            columnKeys   : ['Name','FormattedID','TestCases'],
            columnHeaders : ['Name','FormattedID','TestCases'],
            columnWidths : ['200px','200px', '400px']
            };
        table = new rally.sdk.ui.Table(tableConfig);

         for (var i=0; i < results.ts.length; i++) {
        if (results.ts[i].TestCases){

            console.log(results.ts[i].TestCases.length);
            for(var j = 0; j < results.ts[i].TestCases.length; j++){
                  // console.log(results.ts[i].TestCases.length);
                  // console.log(results.ts[i].TestCases[j].FormattedID);
                t += "  ";
                t += results.ts[i].TestCases[j].FormattedID;

            }
            results.ts[i].TestCases=t;
        }
         table.addRows(results.ts);


        table.display(document.getElementById('tableDiv'));
       }
       }

       function dropdownChanged(dropdown, eventArgs) {


      if(table) {
                table.destroy();
            }
            document.getElementById('tableDiv').innerHTML = "";
            var queryConfig = {
                type : 'testset',
                key  : 'ts',
                fetch: 'Name,FormattedID,TestCases',
                query: '(Name = "' + eventArgs.item.Name + '")'
            };
            rallyDataSource.findAll(queryConfig, showTable);
        }



       function onLoad() {
          rallyDataSource = new rally.sdk.data.RallyDataSource('111', //USE YOUR OIDs
                                                                 '222',
                                                                 'false',
                                                                 'false');
          var config = {
                type : "testset",
                attribute: "Name",
                query : '(ScheduleState = "Defined")'
             };
          var objectDropdown = new rally.sdk.ui.ObjectDropdown(config, rallyDataSource);
          objectDropdown.display("aDiv", dropdownChanged);
       }

       rally.addOnLoad(onLoad);

    </script>
</head>
  <body>
    <div id="aDiv"></div>
     <div id="tableDiv"></div>
</body>
</html>