Spria Test 提供一個友善的界面儀表板式呈現測試結果,生命週期為 Requirements -> Test Case -> Test Run
* 下載 Extension For JUnit Automated Testing Framework jar
* 將jar檔,安裝到local maven repository
mvn install:install-file -Dfile=/tmp/JUnitExtension.jar -DgroupId=com.inflectra.spiratest -DartifactId=junitextension -Dversion=3.0.0 -Dpackaging=jar
雖然Geb也是支援Junit,但Junit並沒有Step,而Spock有@Stepwise,所以我最終採用了Spock,但產出的surefire中,依然不會帶有Step的架構在,它還是把每個Step視為獨立的Test Case,所以我重新改寫了SpiraTestExecute跟SpiraTestListener,這兩個class。
Spock -> 透過Maven surefire產出Junit報表 -> 匯入至Spira Test
寫的沒有很漂亮,所以跟大家分享我實作的基本流程就好了。
* Test Case 需先在平台建好,然後Test Case Step可以透過API動態新增與更新。
IImportExport soap = connectSpiraSoapProxyServer();
soap.testCaseAddStep(remoteTestStep, testCaseId);
* 接下來建立所有 Test Case ,所對應的Test Case Run,它會回傳一個 ArrayOfRemoteManualTestRun。
ArrayOfRemoteManualTestRun arrayOfRemoteManualTestRun = soap.testRunCreateFromTestCases(arrayOfint, releaseId);
* 然後再接著更新裡面的Test Case Run 與 Test Run Step
remoteManualTestRun.setExecutionStatusId(testRun.executionStatusId);
List<RemoteTestRunStep> steps = remoteManualTestRun.getTestRunSteps().getValue()
.getRemoteTestRunStep();
for(RemoteTestRunStep remoteTestRunStep : steps){
remoteTestRunStep.setExecutionStatusId(step.executionStatusId);
}
* 全部資料都設定好後,再把整個Array存回去。
soap.testRunSave(arrayOfRemoteManualTestRun, SpiraUtils.convertDatesJava2Xml(new Date()));
updateTestCaseSteps();
ArrayOfRemoteManualTestRun arrayOfRemoteManualTestRun = spiraExecute.createArrayOfRemoteManualTestRun(testCaseStepMap.keySet());
for (RemoteManualTestRun remoteManualTestRun : arrayOfRemoteManualTestRun.getRemoteManualTestRun()) {
Integer testCaseId = remoteManualTestRun.getTestCaseId();
TestRun testRun = testRunMap.get(testCaseId);
spiraExecute.updateRemoteManualTestRun(remoteManualTestRun, testRun, testCaseStepMap.get(testCaseId));
}
spiraExecute.testRunSave(arrayOfRemoteManualTestRun);