1

我仍然无法从我查询的对象中提取结果。下面的查询提取所有 TestCase 对象并将它们打印到屏幕上。对象如下所示:[object, Object].

然后我尝试通过打印来改进它,document.write( queryResults.testcase.Results + " " + i);但它随后打印了这个:undefined #(# 以索引递增)

我在这里的最终目标是能够找到尚未运行的测试用例,也就是没有结果的测试用例。正如另一位海报所建议的那样,我的策略是返回所有测试用例,然后排序为 Result.length=0; (意味着没有结果)。我试过document.write( queryResults.testcase.Results.length + " " + i);了,但没有用,屏幕上根本没有打印。我用 Results[i] 尝试了类似的事情,认为它是一个对象数组。我试着玩弄'fetch',但是当我把它留空时它似乎只返回一些东西(默认为true,它返回所有字段)。

function runMainQuery(rallyDataSource) {
        document.getElementById("TestCaseInfo").innerHTML = "";
        busySpinner = new rally.sdk.ui.basic.Wait({hideTarget: false});
        busySpinner.display('spinner');
        var daySpan = numOfDays; // how many days back from today for TestCaseResult inclusion

        var dateBoundingClause = '(Date >= "' + previousDate(daySpan) + '")';

       // ORIGINAL VALUE ------  var dateBoundingClause = '(Date >= "' + previousDate(daySpan) + '")';

        querySpec = {
            key   : "testcase",
            type  : "testcase"
            //query: dateBoundingClause
        };
        rallyDataSource.findAll(querySpec, showResults);
    }//end runMainQuery


    function showResults(queryResults) {
        busySpinner.hide();
        //console.log("Number of test cases returned by the Test Case/Test Case Results query: " +
        //             queryResults.testcase.length);

        totalNumTestCases = queryResults.testcase.length;

        if (queryResults.testcase.length === 0) {
            var message = "Enter the date range (Oldest to Newest). Click UPDATE, and wait for the test cases to populate. Once test cases appear, click GENERATE REPORT.";
            document.getElementById("TestCaseInfo").innerHTML = message;

            return;
        }

        for (var i = 0; i < queryResults.testcase.length; i++) {
        document.write( queryResults.testcase + " " + i);
        document.write("<br/>");
        }

任何想法将不胜感激!

ps 我对堆栈溢出很陌生。我认为有一种方法可以将这篇文章与我之前的文章联系起来,但我不知道该怎么做。请告知我相关帖子的正确发帖礼仪。

谢谢

4

1 回答 1

0

我建议查询 LastVerdict 为空的所有测试用例,因为只有在测试用例具有关联的测试用例结果时才会填充 LastVerdict。在您的代码中,这看起来像:

    var queryClause = "(LastVerdict = \"\")";
    querySpec = {
        key   : "testcase",
        type  : "testcase",
        query: queryClause
    };

此查询应返回所有“尚未运行”的测试用例。然后你会在你的showResults函数中处理结果列表。

于 2013-03-18T20:56:48.423 回答