Как удалить шаг из теста в Центре качества через OTA API - PullRequest
1 голос
/ 07 октября 2010

В Quality Center OTA API как можно удалить шаги из теста. Когда я удаляю шаги, используя метод RemoveItem в DesignStepFactory, они все еще остаются - я попытался удалить по идентификатору и ссылке на шаг:

Test test = _qcAccess.AddTest(folderId);
test.Name = "Test 1";
test.Post();

DesignStepFactory factory = (DesignStepFactory) test.DesignStepFactory;
DesignStep step = (DesignStep)factory.AddItem(1);
step.StepName = "Step1";
step.Post();

Test test2 = _qcAccess.FindExistingTest((int)test.ID);
DesignStepFactory factory2 = (DesignStepFactory) test2.DesignStepFactory;
Assert.Equal(1, test2.DesStepsNum);

factory2.RemoveItem(factory2[0]);
test2.Post();

Test test3= _qcAccess.FindExistingTest((int)test.ID);
Assert.Equal(0, test3.DesStepsNum); // test fails here, DesStepsNumb is still 1 

Согласно документации OTA API

Метод RemoveItem

Описание: удаляет элемент из база данных. Удаление происходит немедленно, без поста.

Синтаксис:

Public Sub RemoveItem (ByVal ItemKey As Variant)

ItemKey:

Step.ID (long), ссылка на Шаг объекта или массив вариантов Step.IDs.Step.IDs.

Похоже, это должно работать. К вашему сведению, это для QC10.

Есть мысли?

1 Ответ

0 голосов
/ 07 октября 2010

Исправление заключается в использовании List ("") для извлечения списка шагов, при использовании индексированного средства доступа на фабрике возвращаются недопустимые экземпляры шагов, где ID является просто индексом элемента, а все свойства равны нулю. .

Test test = _qcAccess.AddTest(folderId);
test.Name = "Test 1";
test.Post();

DesignStepFactory factory = (DesignStepFactory) test.DesignStepFactory;
DesignStep step = (DesignStep)factory.AddItem(1);
step.StepName = "Step1";
step.Post();
test.Post();

Test test2 = _qcAccess.FindExistingTest((int)test.ID);
DesignStepFactory factory2 = (DesignStepFactory)test2.DesignStepFactory;
Assert.Equal(1, test2.DesStepsNum);

var list = factory2.NewList(""); // get a list
factory2.RemoveItem(list[1]); // note: list indexing starts at 1 (ugh!)
test2.Post();

Test test3 = _qcAccess.FindExistingTest((int)test.ID);
Assert.Equal(0, test3.DesStepsNum);
...