/// <summary> /// 设置单元测试结果为False /// </summary> /// <param name="unitTestResult"></param> /// <param name="result"></param> /// <param name="tmpException"></param> private void SetUnitTestResultFalse(UnitTestResultContainer unitTestResult, Exception tmpException) { unitTestResult.Result = false; if (tmpException != null) { unitTestResult.MethodException = tmpException; } }
/// <summary> /// 添加单元测试结果 /// </summary> /// <param name="container"></param> public void AddUnitTestResult(UnitTestResultContainer container) { _UnitTestResultContainerList.Add(container); }
/// <summary> /// 添加单元测试结果 /// </summary> /// <param name="container"></param> public void AddUnitTestResult(UnitTestResultContainer container) { _ContainerManager.AddUnitTestResult(container); }
public IUnitTestManager Run(string unitTestNamespace) { IUnitTestCaseManager unitTestCaseManager = DependencyManager.Instance.Resolver <IUnitTestCaseManager>(); IUnitTestResultManager unitTestResultManager = DependencyManager.Instance.Resolver <IUnitTestResultManager>(); List <UnitTestCaseContainer> unitTestCaseContainerList = unitTestCaseManager.GetUnitTestCaseByNamespace(unitTestNamespace); foreach (UnitTestCaseContainer unitTestCase in unitTestCaseContainerList) { object unitTestInstance = DependencyManager.Instance.Resolver(unitTestCase.UnitTestClassType); object unitTestInstanceMethodReturn = null; Exception tmpException = null; UnitTestResultContainer unitTestResult = new UnitTestResultContainer { ClassName = unitTestCase.ClassName, MethodName = unitTestCase.MethodName, UnitTestNamespace = unitTestCase.UnitTestNamespace, MethodParas = unitTestCase.MethodParas }; try { unitTestInstanceMethodReturn = unitTestInstance.GetType().GetMethod(unitTestCase.MethodName).Invoke(unitTestInstance, unitTestCase.MethodParas.ToArray()); } catch (Exception ex) { tmpException = ex; } switch (unitTestCase.CaseAssertType) { case UnitTestCaseAssertType.AssertEquals: if (unitTestInstanceMethodReturn.Equals(unitTestCase.MethodReturn)) { unitTestResult.Result = true; } else { SetUnitTestResultFalse(unitTestResult, tmpException); } break; case UnitTestCaseAssertType.AssertSame: if (unitTestInstanceMethodReturn == unitTestCase.MethodReturn) { unitTestResult.Result = true; } else { SetUnitTestResultFalse(unitTestResult, tmpException); } break; case UnitTestCaseAssertType.AssertFalse: if (unitTestInstanceMethodReturn is bool && !(bool)unitTestInstanceMethodReturn) { unitTestResult.Result = true; } else { SetUnitTestResultFalse(unitTestResult, tmpException); } break; case UnitTestCaseAssertType.AssertTrue: if (unitTestInstanceMethodReturn is bool && (bool)unitTestInstanceMethodReturn) { unitTestResult.Result = true; } else { SetUnitTestResultFalse(unitTestResult, tmpException); } break; case UnitTestCaseAssertType.AssertNull: if (unitTestInstanceMethodReturn == null) { unitTestResult.Result = true; } else { SetUnitTestResultFalse(unitTestResult, tmpException); } break; case UnitTestCaseAssertType.AssertNotNull: if (unitTestInstanceMethodReturn != null) { unitTestResult.Result = true; } else { SetUnitTestResultFalse(unitTestResult, tmpException); } break; case UnitTestCaseAssertType.AssertNotSame: if (unitTestInstanceMethodReturn != unitTestCase.MethodReturn) { unitTestResult.Result = true; } else { SetUnitTestResultFalse(unitTestResult, tmpException); } break; } unitTestResultManager.AddUnitTestResult(unitTestResult); } return(this); }