Мне нужно обновить результат теста в одном тесте, созданном при запуске выполнения тестов - PullRequest
2 голосов
/ 07 апреля 2020

Я написал код для создания TestRun в выбранном Milestone, а затем тестовый запуск включает идентификаторы тестовых наборов, которые необходимо обновить при выполнении тестовых случаев. Код

    [TestClass]
    public class UnitTest1
    {
        static List<Dictionary<string, object>> testCases = new List<Dictionary<string, object>>();
        public static int testrunid;
        private log4net.ILog Testlog;
        public TestContext TestContext { get; set; }

        [ClassInitialize]
        public static void TestRail(TestContext context)
        {
            testrunid = TestRailPM.TestRail();
        }

        [TestInitialize]
        public void initilize()
        {
            Testlog = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
        }

        [Priority(1)]
        [Microsoft.VisualStudio.TestTools.UnitTesting.TestMethod]
        public void TestMethod1()
        {
            Testlog.Info("Step 1/6: Get locaiton menu to set locaiton");
            Assert.AreEqual("Google", "Google");
        }

        [Priority(2)]
        [Microsoft.VisualStudio.TestTools.UnitTesting.TestMethod]
        public void Searchtableview1()
        {

            Assert.AreEqual("Youtube", "youtube");
        }

        [TestCleanup]
        public void CleanUp1()
        {
         var testCase = new Dictionary<string, object>();
         var result = TestContext.CurrentTestOutcome == UnitTestOutcome.Passed ? 1 : 5;
            testCase.Add("result", result);
            testCase.Add("name", TestContext.TestName);
            testCases.Add(testCase);
        }
        [ClassCleanup]
        public static void AllTestsComplete()
        {
            var results = new Dictionary<string, object>();
            results.Add("cases", testCases);

            foreach (var item in testCases)
            {
                foreach (var it in item.Values)
                {
                    UpdateTestRun.updateSingleTestCaseInATestRun(TestRailPageConstants.Testrail.testRailUrl, TestRailPageConstants.Testrail.testRailUser, TestRailPageConstants.Testrail.testRailPassowrd, testrunid, TestRailPageConstants.Testrail.singleTestCaseId, Convert.ToInt32(it), "testCaseComments", TestRailPageConstants.Testrail.testRailUserId);

                }
            }

        }
}

В Файл TestRailpm.cs код:

    public class TestRailPM
    {
            public int testRunIdInInt;
            public void Testrail()
            {

                //Create Test Run in TestRail
                //Pass "true" against 'includeAll' parameter to insert all test cases in a suite; "false" to add specific test case id
                string testRunID = CreateTestRun.CreateRun(GlobalConstants.Testrail.testRailUrl, GlobalConstants.Testrail.testRailUser, GlobalConstants.Testrail.testRailPassowrd, GlobalConstants.Testrail.projectId, GlobalConstants.Testrail.suiteId, GlobalConstants.Testrail.milestoneId, "Automation of TestCases", "Automation of TestCases", GlobalConstants.Testrail.testRailUserId, true, GlobalConstants.Testrail.testCaseIds);
                testRunIdInInt = Convert.ToInt32(testRunID);
                return testRunIdInInt;
    }

В TestRailPageConstants.cs код:

class TestRailPageConstants
{
      public static class Testrail
        {
            public const string testRailUrl = "https://test.testrail.io/";
            public const string testRailUser  = "someemailid";
            public const string testRailPassowrd  = "password";

            public const int projectId  = 1;
            public const int milestoneId  = 1;
            public const int suiteId  = 1;
            public const int testRailUserId  = 1;

            public static string[] testCaseIds = new string[2] { "111111", "22222" };
            public const int singleTestCaseId = 33333;
        }
    }

У меня есть 2 testcases в AutomationCode.cs. Я создал testrun в TestRail в [ClassInitialize] означает один тестовый запуск на выполнение. Этот тестовый запуск включает два тестовых случая, которые находятся в AutomationCode.cs. Теперь мне нужно обновить результаты тестового набора в созданном тестовом запуске в TestRail таким образом, чтобы при первом выполнении тестовый результат передавался в updatetestrun api и обновлял результат тестового примера в TestRail в этом тестовом запуске. Теперь при выполнении второго тестового примера результат второго тестового примера должен быть передан в API updatestrun и обновить результат второго тестового примера в TestRun в TestRail. updatetesrun API принимает testcase result в int, поэтому я преобразовал результат в int Convert.ToInt32(it). Предоставляется один идентификатор тестового случая за один раз. Мне нужно передать результат в виде 1 или 5 (1 для прохождения и 5 для неудачи), что я сделал в TestCleanup в var result. Как я могу это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...