Rally SDK集合存储同步抛出404



EDIT:我最终使用了Rally.data.util.Record.serverSideCopy()并重新检索/更新了新的测试用例来完成这项工作。我没有解决这个问题,因为我仍然不明白为什么我要同步404(不过,我可能没有时间深入研究,因为我走了另一个方向)。

我正试图将TestCaseSteps添加到TestCase中(我从另一个TestCase复制了它——原始步骤集合在保存过程中丢失,因为它们与原始TestCase关联)。我尝试遵循文档的Collection Modification部分中建议的add/sync模式,但仅提供Steps的_ref值导致sync()操作失败,POST上显示404:

HTTP ERROR 404
Problem accessing /slm/webservice/v2.0/TestCase/90167266916/Steps/add. Reason:
Not Found

如下所示,然后我尝试通过原始对象而不是_ref值添加Steps,但我收到了相同的404。

我在这里做错了什么?为什么我的同步操作会导致404?

对于进一步的上下文,以下是回购:https://github.com/crdschurch/reuse-rally-test

var newSteps = newTestCase.getCollection('Steps', {autoLoad: true});
oldTestCase.getCollection('Steps').load({
callback: function(oldRecords, newOperation, newSuccess) {
Ext.Array.each(oldRecords, function(step) {
console.log(step.get('_ref'));
//debugger;
newSteps.add(
{
'Input': step.get('Input'),
'ExpectedResult': step.get('ExpectedResult'),
'StepIndex': step.get('StepIndex'),
'TestCase': newTestCase.get('ObjectID')
}
);
});
console.log('Syncing: ');
console.log(newSteps);
newSteps.sync({
callback: function() {
console.log('New Test: ');
console.log(newTestCase);
}
});
}
});

我的猜测是,您需要将TestCase指定为ref,而不仅仅是其对象:

newSteps.add({
'Input': step.get('Input'),
'ExpectedResult': step.get('ExpectedResult'),
'StepIndex': step.get('StepIndex'),
'TestCase': newTestCase.get('_ref')
});

最新更新