我们加入了一个很重要的测试实例运行时方法InitTestInstance,该方法会在测试用例每次实例化时先执行,在方法内部有一个用来检查当前测试用例运行的环境
  this.CheckCurrentTestCaseIsRun(this.serviceInstance);//check current test case .,我们转到基类中。
1 using System;
2 using Microsoft.VisualStudio.TestTools.UnitTesting;
3
4 namespace OrderManager.Test
5 {
6     public abstract class ProductServiceIntegrationBase
7     {
8         /// <summary>
9         /// service address.
10         /// </summary>
11         protected const string ServiceAddressForDev = "http://dev.service.ProductService/";
12
13         /// <summary>
14         /// get service address.
15         /// </summary>
16         protected const string ServiceAddressForPrd = "http://Prd.service.ProductService/";
17
18         /// <summary>
19         /// service address.
20         /// </summary>
21         protected const string ServiceAddressTest = "http://Test.service.ProductService/";
22
23         /// <summary>
24         /// Test context .
25         /// </summary>
26         public TestContext TestContext { get; set; }
27
28         /// <summary>
29         /// is check is run for current test case.
30         /// </summary>
31         protected void CheckCurrentTestCaseIsRun(ProductService.Contract.ProductServiceClient testObject)
32         {
33             if (testObject.ServiceAddress.Equals(ServiceAddressForPrd))// Prd 环境,需要小心检查
34             {
35                 if (this.TestContext.TestName.Equals("ProductService_DeleteProductSearchIndex_Test"))
36                     Assert.IsTrue(false, "当前测试用例连接的环境为PRD,请停止当前用例的运行。");
37             }
38             else if (testObject.ServiceAddress.Equals(ServiceAddressTest))//Test 环境,检查约定几个用例
39             {
40                 if (this.TestContext.TestName.Equals("ProductService_DeleteProductSearchIndex_Test"))
41                     Assert.IsTrue(false, "当前测试用例连接的环境为TEST,为了不破坏TEST环境,请停止用例的运行。");
42             }
43         }
44     }
45 }
  在检查方法中我们使用简单的判断某个用例不能够在PRD、TEST环境下执行,虽然判断有点简单,但是在真实的项目中足够了,简单有时候是一种设计思想。我们运行所有的测试用例,查看各个状态。

  一目了然,更为重要的是它不会影响你对其他用例的执行。当你在深夜12点排查问题的时候,你很难控制自己的眼花、体虚导致的用例执行错误带来的大问题,甚至是无法挽回的的错误。