Запросы объединения: извлечение результатов из объектов

У меня все еще возникают проблемы с извлечением результатов из объектов, которые я запрашиваю. Приведенный ниже запрос извлекает все объекты 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/>");
        }

Благодарим за любую идею!

p.s. Я совершенно новичок в переполнении стека. Я предполагаю, что есть способ связать этот пост с моим предыдущим постом, но я не знал, как это сделать. Пожалуйста, сообщите мне о надлежащем этикете публикации связанных сообщений.

Спасибо


person Wise Man    schedule 18.03.2013    source источник


Ответы (1)


Я бы рекомендовал запрашивать все тестовые примеры, для которых LastVerdict имеет значение null, поскольку LastVerdict заполняется только в том случае, если тестовый пример связан с результатами тестового набора. В вашем коде это будет выглядеть так:

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

Этот запрос должен возвращать все «еще не запущенные» тестовые случаи. Затем вы обработаете полученный список в своей функции showResults.

person Community    schedule 18.03.2013
comment
Кроме того, чтобы уточнить, причина, по которой вы не видите коллекцию результатов в возвращаемых тест-кейсах, заключается в том, что вы не указали, что она должна быть возвращена через выборку. Для этого вы должны включить предложение выборки в ваш querySpec. fetch: "FormattedID,Results,LastVerdict". - person ; 19.03.2013