예제 #1
0
        public void TestExpression()
        {
            var service = GetService(
                new[]
            {
                "--string",
                "--set",
                "1",
                "2",
                "3",
                "--interface-param"
            });

            var build = new TestBuild();

            ParameterService.GetFromMemberInfo(GetMemberInfo(() => build.String), typeof(AbsolutePath), service.GetParameter)
            .Should().BeNull();

            ParameterService.GetFromMemberInfo(GetMemberInfo(() => build.String), typeof(bool), service.GetParameter)
            .Should().BeOfType <bool>().Subject.Should().BeTrue();

            ParameterService.GetFromMemberInfo(GetMemberInfo(() => build.Set), destinationType: null, service.GetParameter)
            .Should().BeOfType <int[]>().Subject.Should().BeEquivalentTo(new[] { 1, 2, 3 });

            ParameterService.GetFromMemberInfo(GetMemberInfo(() => ((ITestComponent)build).Param), destinationType: null, service.GetParameter)
            .Should().BeOfType <bool>().Subject.Should().BeTrue();
        }
예제 #2
0
        public async Task <IEnumerable <TestCase> > Publish(TestBuild build)
        {
            var    project = build.Project;
            string srcPath = project.SrcDir;
            //looking for test files, publish them to db
            var dir   = new DirectoryInfo(srcPath);
            var files = dir.GetFiles("*.feature", SearchOption.AllDirectories);
            var tests = new List <TestCase>();

            foreach (var f in files)
            {
                string text = await f.OpenText().ReadToEndAsync();

                var matches = RxTagName.Matches(text);
                foreach (Match m in matches)
                {
                    int start = m.Index < 100 ? 0 : m.Index - 100;
                    int end   = m.Index + 100 > text.Length - 1 ? m.Index + 100 : text.Length - 1;
                    var t     = new TestCase
                    {
                        Name     = m.Groups[1].Value,
                        Location = f.FullName.Remove(0, srcPath.Length + 1)
                    };
                    var km = RxTagKeyword.Match(text.Substring(start, end - start));
                    if (km.Success)
                    {
                        t.Keyword = km.Groups[1].Value;
                    }
                    tests.Add(t);
                }
            }

            return(tests);
        }
예제 #3
0
        public Task Test(string testName, ITestConfigurationGenerator attribute)
        {
            var build           = new TestBuild();
            var relevantTargets = ExecutableTargetFactory.CreateAll(build, x => x.Compile);

            var stream = new MemoryStream();

            attribute.Stream = new StreamWriter(stream, leaveOpen: true);
            attribute.Generate(build, relevantTargets);

            stream.Seek(offset: 0, SeekOrigin.Begin);
            var reader = new StreamReader(stream);
            var str    = reader.ReadToEnd();

            return(Verifier.Verify(str)
                   .UseParameters(testName, attribute.GetType().BaseType.NotNull().Name));
        }
예제 #4
0
        public async Task <ActionResult> Create(int testprojectId, TestBuild model, int?testagent)
        {
            model.Project = await _projRepo.FindAsync(testprojectId);

            if (testagent.HasValue)
            {
                model.Agent = await _agentRepo.FindAsync(testagent);
            }
            if (ModelState.IsValid)
            {
                _buildRepo.Add(model);
                await _uow.CommitAsync();

                return(RedirectToAction("Index", new { testprojectId }));
            }
            SetNav(model);
            SetViewData();
            return(View("new", model));
        }
예제 #5
0
        public void Test(string testName, ITestConfigurationGenerator attribute)
        {
            var build           = new TestBuild();
            var relevantTargets = ExecutableTargetFactory.CreateAll(build, x => x.Compile);

            var stream = new MemoryStream();

            attribute.Stream = new StreamWriter(stream, leaveOpen: true);
            attribute.Generate(build, relevantTargets);

            stream.Seek(offset: 0, SeekOrigin.Begin);
            var reader = new StreamReader(stream);
            var str    = reader.ReadToEnd();

            NamerFactory.AdditionalInformation = attribute.GetType().BaseType.NotNull().Name;
            if (testName != null)
            {
                NamerFactory.AdditionalInformation += "." + testName;
            }
            Approvals.Verify(str);
        }
예제 #6
0
 public static IEnumerable <object[]> GetAttributes()
 {
     return(TestBuild.GetAttributes().Select(x => new object[] { x.TestName, x.Generator }));
 }
예제 #7
0
 public void TestValueSet()
 {
     var build       = new TestBuild();
     var verbosities = new[]
예제 #8
0
 private void SetNav(TestBuild build)
 {
     ViewBag.Nav = new TestBuildNav(build);
 }
예제 #9
0
파일: NavModel.cs 프로젝트: moonavw/testlab
 public TestBuildNav(TestBuild build) : this(build.Project)
 {
 }