public virtual void AddData(TestInstanceData testInstance) { Dictionary <string, string> columnToValue = DataModelMapper.GetColumnValueMapping(testInstance); string cmd = SqlCommandFactory.CreateInsertCmd(DataBaseItemNames.InstanceTableName, columnToValue); ExecuteWriteCommand(cmd); }
public void ReadInstance() { _dataMaintainer.DesigntimeInitialize(); TestInstanceData testInstanceData1 = _dataMaintainer.GetTestInstance(_testInstanceData1.RuntimeHash); Assert.IsTrue(AreEqauls(_testInstanceData1, testInstanceData1)); TestInstanceData testInstanceData2 = _dataMaintainer.GetTestInstance(_testInstanceData2.RuntimeHash); Assert.IsTrue(AreEqauls(_testInstanceData2, testInstanceData2)); }
public virtual IList <TestInstanceData> GetTestInstances(string filterString) { string cmd = SqlCommandFactory.CreateQueryCmd(filterString, DataBaseItemNames.InstanceTableName); using (DbDataReader dataReader = ExecuteReadCommand(cmd)) { List <TestInstanceData> testInstanceDatas = new List <TestInstanceData>(50); while (dataReader.Read()) { TestInstanceData instanceData = new TestInstanceData(); DataModelMapper.ReadToObject(dataReader, instanceData); testInstanceDatas.Add(instanceData); } return(testInstanceDatas); } }
public virtual void UpdateData(TestInstanceData testInstance) { // 获取原数据,转换为键值对类型 TestInstanceData lastInstanceData = InternalGetTestInstanceData(testInstance.RuntimeHash); Dictionary <string, string> lastInstanceValues = DataModelMapper.GetColumnValueMapping(lastInstanceData); Dictionary <string, string> columnToValue = DataModelMapper.GetColumnValueMapping(testInstance); // 比较并创建更新命令 string filter = $"{DataBaseItemNames.RuntimeIdColumn}='{testInstance.RuntimeHash}'"; string cmd = SqlCommandFactory.CreateUpdateCmd(DataBaseItemNames.InstanceTableName, lastInstanceValues, columnToValue, filter); if (string.IsNullOrWhiteSpace(cmd)) { return; } ExecuteWriteCommand(cmd); }
private static TestInstanceData CreateTestInstance(int id) { TestInstanceData testInstance = new TestInstanceData() { Name = $"TestInstance{id}", Description = $"InstanceDescription{id}", TestProjectName = $"TestProject{id}", TestProjectDescription = $"TestProject Description{id}", RuntimeHash = $"RuntimeHash{id}", StartGenTime = DateTime.Now - new TimeSpan(1, 1, 1, 1), EndGenTime = DateTime.Now - new TimeSpan(0, 1, 1, 1), StartTime = DateTime.Now - new TimeSpan(0, 0, 1, 1), EndTime = DateTime.Now - new TimeSpan(0, 0, 0, 1), ElapsedTime = 10000 }; return(testInstance); }
private void SetTestInstanceEndTime(DateTime endTime) { TestInstanceData testInstanceData = _stateManageContext.TestInstance; testInstanceData.EndTime = endTime; if (testInstanceData.StartTime == DateTime.MaxValue) { testInstanceData.StartTime = endTime; } if (testInstanceData.EndGenTime == DateTime.MaxValue) { testInstanceData.EndGenTime = endTime; } if (testInstanceData.StartGenTime == DateTime.MaxValue) { testInstanceData.StartGenTime = endTime; } testInstanceData.ElapsedTime = (testInstanceData.EndTime - testInstanceData.StartGenTime).TotalMilliseconds; }
public void UpdateInstance() { _dataMaintainer.RuntimeInitialize(); _testInstanceData1.EndTime = DateTime.Now; _dataMaintainer.UpdateData(_testInstanceData1); _testInstanceData2.EndTime = DateTime.Now; _dataMaintainer.UpdateData(_testInstanceData2); _dataMaintainer.DesigntimeInitialize(); TestInstanceData testInstanceData1 = _dataMaintainer.GetTestInstance(_testInstanceData1.RuntimeHash); Assert.IsTrue(AreEqauls(_testInstanceData1, testInstanceData1)); TestInstanceData testInstanceData2 = _dataMaintainer.GetTestInstance(_testInstanceData2.RuntimeHash); Assert.IsTrue(AreEqauls(_testInstanceData2, testInstanceData2)); }
//父类继承 //public void PrintReport(string filePath, string runtimeHash, int sessionId) //{ //} /* * 已下输出方法结构类似,采用嵌套循环: * 在PrintTestInstance里调用PrintSessionResults; * 在PrintSessionResults里调用PrintSequenceResults和PrintPerformance; */ private void PrintTestInstance(StreamWriter sw, string runtimeHash) { TestInstanceData testInstance = _dataMaintainer.GetTestInstance(runtimeHash); if (testInstance != null) { WriteRecord(sw, 0, "TestInstanceName", testInstance.Name); WriteRecord(sw, 0, "TestInstanceDescription", testInstance.Description); WriteRecord(sw, 0, "TestProjectName", testInstance.TestProjectName); WriteRecord(sw, 0, "TestProjectDescription", testInstance.TestProjectDescription); WriteRecord(sw, 0, "StartGenTime", testInstance.StartGenTime.ToString(DateFormat)); WriteRecord(sw, 0, "EndGenTime", testInstance.EndGenTime.ToString(DateFormat)); WriteRecord(sw, 0, "StartTime", testInstance.StartTime.ToString(DateFormat)); WriteRecord(sw, 0, "EndTime", testInstance.EndTime.ToString(DateFormat)); WriteRecord(sw, 0, "ElapsedTime", (testInstance.ElapsedTime / 1000).ToString(DoubleFormat)); sw.WriteLine(); } //输出报告每个session PrintSessionResults(sw, runtimeHash); }
protected TestInstanceData InternalGetTestInstanceData(string runtimeHash) { string filter = $"{DataBaseItemNames.RuntimeIdColumn}='{runtimeHash}'"; string cmd = SqlCommandFactory.CreateQueryCmd(filter, DataBaseItemNames.InstanceTableName); using (DbDataReader dataReader = ExecuteReadCommand(cmd)) { TestInstanceData instanceData; if (dataReader.Read()) { instanceData = new TestInstanceData(); DataModelMapper.ReadToObject(dataReader, instanceData); } else { instanceData = null; } return(instanceData); } }
public void WriteData(TestInstanceData testInstance) { // TODO }
public ResultManagerTest() { #region 创建并初始化假的TestFlowRunner, 将创建的DataMaintainer赋予它 Type runnerType = typeof(TestflowRunner); //默认options TestflowRunnerOptions option = new TestflowRunnerOptions(); //创建假的TestFlowRunner FakeTestflowRunner fakeTestflowRunner = new FakeTestflowRunner(option); Type intType = typeof(int); //用反射将获取private fieldInfo,然后赋值fake FieldInfo fieldInfo = runnerType.GetField("_runnerInst", BindingFlags.Static | BindingFlags.NonPublic); fieldInfo.SetValue(null, fakeTestflowRunner); _dataMaintainer = new DataMaintainer.DataMaintainer(); fakeTestflowRunner.SetDataMaintainer(_dataMaintainer); fakeTestflowRunner.Initialize(); #endregion _resultManager = new ResultManager.ResultManager(); #region 用此类里的方法创建测试用数据 _testInstanceData1 = CreateTestInstance(1); _sessionResultData11 = CreateSessionResult(1, 1); _sequenceResultData111 = CreateSequenceResult(1, 1, 1); _sequenceResultData112 = CreateSequenceResult(1, 1, 2); _runtimeStatusData1111 = CreateRuntimeStatusData(1, 1, 1, 1); _runtimeStatusData1112 = CreateRuntimeStatusData(1, 1, 2, 2); _sessionResultData12 = CreateSessionResult(1, 2); _sequenceResultData121 = CreateSequenceResult(1, 2, 1); _sequenceResultData122 = CreateSequenceResult(1, 2, 2); _runtimeStatusData1211 = CreateRuntimeStatusData(1, 2, 1, 3); _runtimeStatusData1212 = CreateRuntimeStatusData(1, 2, 2, 4); _performanceStatus111 = CreatePerformanceData(1, 1, 1); _performanceStatus112 = CreatePerformanceData(1, 1, 2); _performanceStatus121 = CreatePerformanceData(1, 2, 3); _performanceStatus122 = CreatePerformanceData(1, 2, 4); _testInstanceData2 = CreateTestInstance(2); _sessionResultData21 = CreateSessionResult(2, 1); _sequenceResultData211 = CreateSequenceResult(2, 1, 1); _sequenceResultData212 = CreateSequenceResult(2, 1, 2); _runtimeStatusData2111 = CreateRuntimeStatusData(2, 1, 1, 1); _runtimeStatusData2112 = CreateRuntimeStatusData(2, 1, 2, 2); _sessionResultData22 = CreateSessionResult(2, 2); _sequenceResultData221 = CreateSequenceResult(2, 2, 1); _sequenceResultData222 = CreateSequenceResult(2, 2, 2); _runtimeStatusData2211 = CreateRuntimeStatusData(2, 2, 1, 3); _runtimeStatusData2212 = CreateRuntimeStatusData(2, 2, 2, 4); _performanceStatus211 = CreatePerformanceData(2, 1, 1); _performanceStatus212 = CreatePerformanceData(2, 1, 2); _performanceStatus221 = CreatePerformanceData(2, 2, 3); _performanceStatus222 = CreatePerformanceData(2, 2, 4); #endregion #region 初始化_dataMaintainer // 只有DesigntimeInitialize可以删掉记录 _dataMaintainer.DesigntimeInitialize(); // 删除记录 _dataMaintainer.DeleteTestInstance($"RuntimeHash='{_testInstanceData1.RuntimeHash}'"); _dataMaintainer.DeleteTestInstance($"RuntimeHash='{_testInstanceData2.RuntimeHash}'"); // 只有RuntimeInitialize可以新增记录 _dataMaintainer.RuntimeInitialize(); #endregion #region 添加数据到数据库 _dataMaintainer.AddData(_testInstanceData1); _dataMaintainer.AddData(_sessionResultData11); _dataMaintainer.AddData(_sequenceResultData111); _dataMaintainer.AddData(_sequenceResultData112); _dataMaintainer.AddData(_sessionResultData12); _dataMaintainer.AddData(_sequenceResultData121); _dataMaintainer.AddData(_sequenceResultData122); _dataMaintainer.AddData(_runtimeStatusData1211); _dataMaintainer.AddData(_runtimeStatusData1212); _dataMaintainer.AddData(_runtimeStatusData1111); _dataMaintainer.AddData(_runtimeStatusData1112); _dataMaintainer.AddData(_performanceStatus111); _dataMaintainer.AddData(_performanceStatus112); _dataMaintainer.AddData(_performanceStatus121); _dataMaintainer.AddData(_performanceStatus122); _dataMaintainer.AddData(_testInstanceData2); _dataMaintainer.AddData(_sessionResultData21); _dataMaintainer.AddData(_sequenceResultData211); _dataMaintainer.AddData(_sequenceResultData212); _dataMaintainer.AddData(_sessionResultData22); _dataMaintainer.AddData(_sequenceResultData221); _dataMaintainer.AddData(_sequenceResultData222); _dataMaintainer.AddData(_runtimeStatusData2211); _dataMaintainer.AddData(_runtimeStatusData2212); _dataMaintainer.AddData(_runtimeStatusData2111); _dataMaintainer.AddData(_runtimeStatusData2112); _dataMaintainer.AddData(_performanceStatus211); _dataMaintainer.AddData(_performanceStatus212); _dataMaintainer.AddData(_performanceStatus221); _dataMaintainer.AddData(_performanceStatus222); #endregion }
public void UpdateData(TestInstanceData testInstance) { _databaseProxy.UpdateData(testInstance); }
public void AddData(TestInstanceData testInstance) { _databaseProxy.AddData(testInstance); }
public void UpdateData(TestInstanceData testInstance) { _dataMaintainer.UpdateData(testInstance); }
public void WriteData(TestInstanceData testInstance) { _dataMaintainer.AddData(testInstance); }
public void UpdateData(TestInstanceData testInstance) { // TODO }
public override void UpdateData(TestInstanceData testInstance) { throw new System.InvalidOperationException(); }
public DataMaintainTest() { Type runnerType = typeof(TestflowRunner); TestflowRunnerOptions option = new TestflowRunnerOptions(); FakeTestflowRunner fakeTestflowRunner = new FakeTestflowRunner(option); Type intType = typeof(int); FieldInfo fieldInfo = runnerType.GetField("_runnerInst", BindingFlags.Static | BindingFlags.NonPublic); fieldInfo.SetValue(null, fakeTestflowRunner); fakeTestflowRunner.SetLogService(null); _dataMaintainer = new DataMaintainer.DataMaintainer(); ModuleConfigData moduleConfigData = new ModuleConfigData(); moduleConfigData.InitExtendProperties(); _dataMaintainer.ApplyConfig(moduleConfigData); _testInstanceData1 = CreateTestInstance(1); _sessionResultData11 = CreateSessionResult(1, 1); _sequenceResultData111 = CreateSequenceResult(1, 1, 1); _sequenceResultData112 = CreateSequenceResult(1, 1, 2); _runtimeStatusData1111 = CreateRuntimeStatusData(1, 1, 1, 1); _runtimeStatusData1112 = CreateRuntimeStatusData(1, 1, 2, 2); _sessionResultData12 = CreateSessionResult(1, 2); _sequenceResultData121 = CreateSequenceResult(1, 2, 1); _sequenceResultData122 = CreateSequenceResult(1, 2, 2); _runtimeStatusData1211 = CreateRuntimeStatusData(1, 2, 1, 3); _runtimeStatusData1212 = CreateRuntimeStatusData(1, 2, 2, 4); _performanceStatus111 = CreatePerformanceData(1, 1, 1); _performanceStatus112 = CreatePerformanceData(1, 1, 2); _performanceStatus121 = CreatePerformanceData(1, 2, 3); _performanceStatus122 = CreatePerformanceData(1, 2, 4); _testInstanceData2 = CreateTestInstance(2); _sessionResultData21 = CreateSessionResult(2, 1); _sequenceResultData211 = CreateSequenceResult(2, 1, 1); _sequenceResultData212 = CreateSequenceResult(2, 1, 2); _runtimeStatusData2111 = CreateRuntimeStatusData(2, 1, 1, 1); _runtimeStatusData2112 = CreateRuntimeStatusData(2, 1, 2, 2); _sessionResultData22 = CreateSessionResult(2, 2); _sequenceResultData221 = CreateSequenceResult(2, 2, 1); _sequenceResultData222 = CreateSequenceResult(2, 2, 2); _runtimeStatusData2211 = CreateRuntimeStatusData(2, 2, 1, 3); _runtimeStatusData2212 = CreateRuntimeStatusData(2, 2, 2, 4); _performanceStatus211 = CreatePerformanceData(2, 1, 1); _performanceStatus212 = CreatePerformanceData(2, 1, 2); _performanceStatus221 = CreatePerformanceData(2, 2, 3); _performanceStatus222 = CreatePerformanceData(2, 2, 4); // 只有DesigntimeInitialize可以删掉记录 _dataMaintainer.DesigntimeInitialize(); // 删除记录 _dataMaintainer.DeleteTestInstance($"RuntimeHash='{_testInstanceData1.RuntimeHash}'"); _dataMaintainer.DeleteTestInstance($"RuntimeHash='{_testInstanceData2.RuntimeHash}'"); // 只有RuntimeInitialize可以新增记录 _dataMaintainer.RuntimeInitialize(); _dataMaintainer.AddData(_testInstanceData1); _dataMaintainer.AddData(_sessionResultData11); _dataMaintainer.AddData(_sequenceResultData111); _dataMaintainer.AddData(_sequenceResultData112); _dataMaintainer.AddData(_sessionResultData12); _dataMaintainer.AddData(_sequenceResultData121); _dataMaintainer.AddData(_sequenceResultData122); _dataMaintainer.AddData(_runtimeStatusData1211); _dataMaintainer.AddData(_runtimeStatusData1212); _dataMaintainer.AddData(_runtimeStatusData1111); _dataMaintainer.AddData(_runtimeStatusData1112); _dataMaintainer.AddData(_performanceStatus111); _dataMaintainer.AddData(_performanceStatus112); _dataMaintainer.AddData(_performanceStatus121); _dataMaintainer.AddData(_performanceStatus122); _dataMaintainer.AddData(_testInstanceData2); _dataMaintainer.AddData(_sessionResultData21); _dataMaintainer.AddData(_sequenceResultData211); _dataMaintainer.AddData(_sequenceResultData212); _dataMaintainer.AddData(_sessionResultData22); _dataMaintainer.AddData(_sequenceResultData221); _dataMaintainer.AddData(_sequenceResultData222); _dataMaintainer.AddData(_runtimeStatusData2211); _dataMaintainer.AddData(_runtimeStatusData2212); _dataMaintainer.AddData(_runtimeStatusData2111); _dataMaintainer.AddData(_runtimeStatusData2112); _dataMaintainer.AddData(_performanceStatus211); _dataMaintainer.AddData(_performanceStatus212); _dataMaintainer.AddData(_performanceStatus221); _dataMaintainer.AddData(_performanceStatus222); }