Как добавить тестовые случаи в существующий тестовый запуск с API от Java до TestRail? - PullRequest
0 голосов
/ 15 октября 2018

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

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

Case mycase = new Case().setTitle("TEST TITLE").setSuiteId(suite.getId()).setSectionId(section.getId());
mycase = testRail.cases().add(mycase.getSectionId(), mycase, customCaseFields).execute();
final List<Integer> caseToAdd = new ArrayList();
caseToAdd.add(mycase.getId());
run.setCaseIds(caseToAdd);
run = testRail.runs().update(run).execute();
//The first test start the execution
.
.
.
// The first test case finish
// Now I create a new testcase to add
Case mySecondCase = new Case().setTitle("TEST TITLE").setSuiteId(suite.getId()).setSectionId(section.getId());
mycase = testRail.cases().add(mySecondCase.getSectionId(), mySecondCase, customCaseFields).execute();
// I repeat the prevous steps to add a new test case
final List<Integer> newCaseToAdd = new ArrayList();
newCaseToAdd.add(mySecondCase.getId());
    run.setCaseIds(newCaseToAdd);
    run = testRail.runs().update(run).execute();

Кто-нибудь знает, как это сделать?Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

Я решил проблему со структурой Plan and Entry.Я сохраняю все тестовые случаи в списке, и этот список передается в качестве параметра в функции entry.setCaseIds:

// First Test Case
Case mycase = new Case().setTitle("TEST TITLE").setSuiteId(suite.getId()).setSectionId(section.getId());
mycase = testRail.cases().add(mycase.getSectionId(), mycase, customCaseFields).execute();
// List for Test Cases
List<Integer> caseList = new ArrayList<>();
caseList.add(mycase.getId());
// Create new Entry and add the test cases
Entry entry = new Entry().setIncludeAll(false).setSuiteId(suite.getId()).setCaseIds(caseList);
entry = testRail.plans().addEntry(testPlan.getId(),entry).execute();
// Create the second test case
Case mycase2 = new Case().setTitle("TEST TITLE 2").setSuiteId(suite.getId()).setSectionId(section.getId());
mycase2 = testRail.cases().add(mycase.getSectionId(), mycase, customCaseFields).execute();
// Add the second test case to the list
caseList.add(mycase2.getId());
// Set in the Entry all the test cases and update the Entry
entry.setCaseIds(caseList);
testRail.plans().updateEntry(testPlan.getId(), entry).execute();

Чтобы выполнить тестовые задания, вам необходимо запустить тест:

run = entry.getRuns().get(0);
0 голосов
/ 16 октября 2018

Вот что мне удалось найти:

  1. TestRail не поддерживает операцию добавления / добавления.Он поддерживает только операцию установки / переопределения.Это то, что происходит в вашем случае, когда вы вызываете setCaseIds два раза при одном запуске, он сохраняет только последний идентификатор (и это то, что вы обычно можете ожидать от set метода).
  2. Предлагаемое решение:

Run activeRun = testRail.runs().get(1234).execute(); List<Integer> testCaseIds = activeRun.getCaseIds() == null ? new ArrayList<>() : new ArrayList<>(activeRun.getCaseIds()); testCaseIds.add(333); testRail.runs.update(activeRun.setCaseIds(testCaseIds)).execute();

Таким образом, вместо того, чтобы просто устанавливать новые идентификаторы, вы берете существующие идентификаторы из прогона, добавляете в него идентификаторы и обновляете прогон.

источник: https://github.com/codepine/testrail-api-java-client/issues/24

...