我正在尝试创建一个应用程序,以通过/失败总数显示当前项目中的所有测试集及其状态。
我面临的问题(顺便说一句,BTW昨天才开始学习ExtJS和Rally SDK):
 -我需要了解如何使用当前选择的项目作为网格中使用的项目作为过滤器
 -如何查询测试集通过/失败总数,然后显示在网格的一列中-示例:测试集123 | 45/70

最佳答案

这是使用project picker并按项目构建测试集网格的应用示例。另请参见this post中的代码示例。 Web Services API中没有归档计算通过/失败总数的文件。您将必须遍历结果并计算代码中的总数。我鼓励通过某些标准来限制测试案例结果的数量,例如创立日期。在自动化测试用例结果的情况下,庞大的数据量可能会带来问题。

Ext.define('CustomApp', {
    extend: 'Rally.app.App',
    componentCls: 'app',

        launch: function() {
            var c = Ext.create('Ext.Container', {
                items: [
                    {
                    xtype: 'rallyprojectpicker',
                    fieldLabel: 'select project',
                        listeners:{
                            change: function(combobox){
                                if ( this.down('#g')) {
                                    console.log('grid exists');
                                    Ext.getCmp('g').destroy();
                                    console.log('grid deleted');
                                }
                                this.onProjectSelected(combobox.getSelectedRecord());
                            },
                            scope: this
                        }
                    },
                ],
            });
            this.add(c);
        },

        onProjectSelected:function(record){
            var project = record.data['_ref'];
            console.log('project', project);
            var testSetStore = Ext.create('Rally.data.WsapiDataStore', {
            model: 'TestSet',
            fetch: ['FormattedID','Name', 'Project', 'TestCaseStatus'],
            pageSize: 100,
            autoLoad: true,
            filters: [
        {
            property: 'Project',
            value: project
        }
        ],
            listeners: {
                load: this.onTestSetsLoaded,
                scope: this
            }
        });


        },

    onTestSetsLoaded:function(store, data){
                var testSets = [];
                Ext.Array.each(data, function(testset) {
                    var ts  = {
                        FormattedID: testset.get('FormattedID'),
                        _ref: testset.get("_ref"),
                        Name: testset.get('Name'),
            TestCaseStatus: testset.get('TestCaseStatus')
                    };
                    testSets.push(ts);
                 });
                this.updateGrid(testSets);

    },


        updateGrid: function(testSets){
        var store = Ext.create('Rally.data.custom.Store', {
                data: testSets,
                pageSize: 100
            });
        if (!this.down('#g')) {
        this.createGrid(store);
        }
        else{
        this.down('#g').reconfigure(store);
        }
    },

        createGrid: function(store){
    console.log("load grid", store);

    var g = Ext.create('Rally.ui.grid.Grid', {
                id: 'g',
        store: store,

        columnCfgs: [
        {
                   text: 'Formatted ID', dataIndex: 'FormattedID', xtype: 'templatecolumn',
                    tpl: Ext.create('Rally.ui.renderer.template.FormattedIDTemplate')
                },
                {
                    text: 'Name', dataIndex: 'Name'
                },
        {
                    text: 'TestCaseStatus', dataIndex: 'TestCaseStatus'
                }
        ]
    });
    this.add(g);
   },
});


该示例的完整html源可从this repo获得。

关于testing - 自定义Rally Grid列与Rally数据列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19887056/

10-13 05:26