2013-03-18 68 views
1

我仍然無法從我查詢的對象中提取結果。 下面的查詢拉取所有TestCase對象並將它們打印到屏幕上。對象如下所示:[object, Object]集會查詢:從對象中提取結果

我試圖再通過打印document.write(queryResults.testcase.Results + " " + i);完善它,但隨後它打印此:undefined #(與指數#增量)

我在這裏的最終目標是能夠找到尚未運行,AKA測試用例,沒有結果。正如另一張海報所建議的,我的策略是返回所有測試用例,然後對Result.length = 0進行排序; (意味着沒有結果)。 我試過document.write(queryResults.testcase.Results.length + " " + i);,但沒有奏效,根本沒有打印到屏幕上。我嘗試了類似的結果[我],認爲它是一個對象數組。 我試着玩弄'fetch',但它似乎只是返回一些東西,當我把它留空(默認是真的,它會返回所有字段)。

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.我對堆棧溢出頗爲陌生。我認爲有一種方法可以將這篇文章與我以前的文章聯繫起來,但我不知道該怎麼做。請通知我有關帖子的正確發帖禮節。

感謝

回答

0

我會建議在查詢所有測試用例這LastVerdict爲null,因爲如果測試案例都有相關的測試用例結果LastVerdict只填充。在您的代碼中,這看起來像:

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

此查詢應該返回所有「尚未運行」的測試用例。然後你會在你的showResults函數中處理結果列表。

+0

此外 - 爲了澄清 - 你沒有看到TestCases上的Results集合被返回的原因是你沒有指定它是通過fetch返回的。爲此,您需要在querySpec中包含一個讀取子句。 'fetch:「FormattedID,Results,LastVerdict」'。 – 2013-03-19 00:32:01

+0

感謝您的幫助! – 2013-05-08 19:38:39