2014-06-13 3 views
1

TestSet 개체에서 SDK의 TestCases 컬렉션 검색이 올바르게 작동하지 않습니다. TestCase 컬렉션이 개체의 전체 배열이 아니며 TestCases 컬렉션에 매우 부족한 정보가 있기 때문에 IMO입니다. 웹 서비스 API가 올바르게 반환하고 2.0p5 만 제대로 반환하고 2.0rc rc2 및 rc3 중 어느 것도 예상대로 반환하지 않습니다.TestCases 컬렉션이 SDK를 통해 올바르게 검색되지 않지만 웹 서비스 API에서만 검색됩니다.

잘못된 것이 있습니까?

TestSet 객체를 검색 할 때 각 테스트 케이스에 대해 모든 정규화 된 객체로 TestCases 컬렉션을 가져와야합니다.

답변

1

AppSDK rc2는 WS API v2.0과 호환됩니다. v2.0에서는 성능상의 이유로 같은 응답으로 하위 컬렉션을 반환하는 기능을 제거했습니다. WS API documentation fetching a collection 일 경우 수와 컬렉션 데이터를 가져올 URL이있는 개체가 반환됩니다. 전체 개체를 얻으려면 별도의 요청이 필요합니다. app example in this github repo에서 테스트 세트가 콤보 박스에서 선택되고 testset이로드되면 TestCases 콜렉션이 수화됩니다.

_onDataLoaded: function(store, records){ 
     if ((records.length === 0) && (this._grid)) { 
      this._grid.destroy(); 
     } 

     var that = this; 

     var promises = []; 
     _.each(records, function(tcr) { 
      promises.push(that._getTestCase(tcr, that)); 
     }); 

     Deft.Promise.all(promises).then({ 
      success: function(results) { 
       that._testcaseresults = results; 
       that._createGrid(records); 
      } 
     }); 
    }, 
     _getTestCase: function(tcr, scope) { 
      var deferred = Ext.create('Deft.Deferred'); 
      var that = scope; 
      var testcaseOid = tcr.get('TestCase').ObjectID; 
      Rally.data.ModelFactory.getModel({ 
      type: 'Test Case', 
      scope: this, 
      success: function(model, operation) { 
       fetch: ['FormattedID','Name','Method'], 
       model.load(testcaseOid, { 
        scope: this, 
        success: function(record, operation) { 
         var testName = record.get('Name'); 
         var testFid = record.get('FormattedID'); 
         var testMethod = record.get('Method'); 
         var tcrRef = tcr.get('_ref'); 
         var tcrOid = tcr.get('ObjectID'); 
         var tcrVerdict = tcr.get('Verdict'); 
         var tcrBuild = tcr.get('Build'); 

         result = { 
          "_ref"   : tcrRef, 
          "ObjectID"  : tcrOid, 
          "Verdict"  : tcrVerdict, 
          "Build"   : tcrBuild, 
          "TestCaseName"  : testName, 
          "TestCase" : testFid, 
          "Method" : testMethod 
         }; 

         deferred.resolve(result);  
        } 
       }); 
       } 
      }); 
      return deferred; 
     } 
+0

nickm. 감사합니다. 이것으로 해결된다. –