public TestingData()
 {
     EndTime = DateTime.MinValue;
     Completed = false;
     ErrorType = Testing.ErrorType.NoError;
     Exception = null;
     InputData = new TestingConfiguration();
     OutputData = new TestingConfiguration();
 }
 public TestingPoint()
 {
     Config = new TestingConfiguration();
 }
Exemple #3
0
        /// <summary>
        /// 开始测试。
        /// </summary>
        /// <param name="groupName">要进行测试的测试组名。</param>
        /// <param name="keep">指示只执行一次测试,还是持续进行测试。</param>
        public void BeginTest(string groupName, bool keep)
        {
            // 开始进行测试
            if (this.Config == null)
                throw new ArgumentNullException("Config");

            var group = this.Config[ConfigKeys.TestingGroup] as TestingGroup;
            if (group == null)
                throw new ArgumentException("配置项缺乏 ConfigKeys.TestingGroup");

            this.Status = TestingStatus.Running;
            ThreadPool.QueueUserWorkItem(status => {
                TestingConfiguration input = new TestingConfiguration();
                foreach (var point in group.Points) {
                    for (var i = 0; i < point.Times; ++i) {
                        var item = Activator.CreateInstance(Type.GetType(point.Type)) as TestingItem;
                        var data = new TestingData() {
                            Config = this.Config,
                            InputData = input != null ? new TestingConfiguration(point.Config.Concat(input).ToList()) : point.Config,
                            Point = point,
                            Time = i,
                            Timeout = new TimeSpan(point.Timeout * 10000),
                            StartTime = DateTime.Now
                        };
                        this.OnTestingItemBegin(data);
                        item.Test(data);
                        this.OnTestingItemEnd(data);

                        if (data.OutputData != null) {
                            input.AddRange(data.OutputData);
                        }
                    }
                }

                this.Status = TestingStatus.Stop;
            });
        }