/** * Copyright 2015 itoshige1017@gmail.com * * This software is released under the MIT License. * http://opensource.org/licenses/mit-license.php */ package com.github.itoshige.testrail.rules; import org.junit.rules.TestWatcher; import org.junit.runner.Description; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.github.itoshige.testrail.client.TestRailClient.ResultStatus; import com.github.itoshige.testrail.model.TestResultModel; import com.github.itoshige.testrail.model.store.TestResultStoreKey; import com.github.itoshige.testrail.store.SyncManager; import com.github.itoshige.testrail.util.ConfigrationUtil; import com.github.itoshige.testrail.util.TestRailUnitUtil; /** * @Rule annotation / storage junit test result * * @author itoshige * */ public class TestRailStore extends TestWatcher { private static final Logger logger = LoggerFactory.getLogger(TestRailStore.class); private String runId; private String projectId; public TestRailStore(TestRailUnit unit) { this.runId = unit.getRunId(); this.projectId = unit.getProjectId(); } protected void succeeded(Description desc) { if (!isDisabled(desc)) { TestResultStoreKey key = new TestResultStoreKey(runId, desc.getTestClass()); SyncManager.storeJunitTestResult(key, new TestResultModel(SyncManager.getTestId(projectId, runId, desc), ResultStatus.PASSED, "This test worked fine!")); } } protected void failed(Throwable e, Description desc) { if (!isDisabled(desc)) { TestResultStoreKey key = new TestResultStoreKey(runId, desc.getTestClass()); logger.error("[ERROR]assertError : {}", e.getMessage()); SyncManager.storeJunitTestResult( key, new TestResultModel(SyncManager.getTestId(projectId, runId, desc), ResultStatus.FAILED, e .toString())); } } private boolean isDisabled(Description desc) { return ConfigrationUtil.isDisabled() || TestRailUnitUtil.isSkipClass(desc.getTestClass()) || TestRailUnitUtil.isSkipMethod(desc); } }