コード例 #1
0
        public async void Get_Program_Members()
        {
            var appMembers = (await SolutionScanner.GetMembers(@"..\..\..\TestConsoleApp\TestConsoleApp.csproj"))
                             .ToList();

            Assert.Contains(new Method
            {
                Name = "static void TestConsoleApp.Program.Main(string[])"
            },
                            appMembers);
        }
コード例 #2
0
        public void Scan_Should_Return_Expected_Functions(int idx)
        {
            var commit = Commit.All[idx];

            CheckoutRepository(commit.Sha1Hash);
            var scanner = new SolutionScanner(_solutionPath);

            var result = scanner.Scan();

            result.Count.Should().Be(commit.Functions.Count);
            result.Should().Contain(commit.Functions);
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: Nexus87/TestDiscover
        private static List <string> GetTestList(Action <Repository> checkoutMethod)
        {
            using (var repo = new Repository(_gitRepo))
            {
                var path = !string.IsNullOrWhiteSpace(_username) ? repo.Clone(_username, _passwd) : repo.Clone();
                checkoutMethod(repo);

                var solution = Directory.GetFiles(path, _solution, SearchOption.AllDirectories).First();

                var scanner = new SolutionScanner(solution);
                return(scanner.Scan());
            }
        }
コード例 #4
0
        public async void Get_AClass_Members()
        {
            var libMembers = (await SolutionScanner.GetMembers(@"..\..\..\TestClassLibrary\TestClassLibrary.csproj"))
                             .ToList();

            Assert.Contains(new Method
            {
                Name = "void TestClassLibrary.AClass.AMethod(int)"
            },
                            libMembers);

            Assert.Contains(new Method
            {
                Name = "void TestClassLibrary.AClass.UnreferencedMethod()"
            },
                            libMembers);

            Assert.Contains(new Method
            {
                Name = "void TestClassLibrary.AClass.IndirectlyReferencedMethod()"
            },
                            libMembers);

            Assert.Contains(new Method
            {
                Name = "void TestClassLibrary.AClass.IndirectlyUnreferencedMethod()"
            },
                            libMembers);

            Assert.Contains(new Method
            {
                Name = "void TestClassLibrary.AClass.OnlyReferencedByTestMethod()"
            },
                            libMembers);

            Assert.Contains(new Method
            {
                Name = "static void TestClassLibrary.AClassUnitTests.ATest()"
            },
                            libMembers);
        }
コード例 #5
0
        static async Task Main(string[] args)
        {
            // Locate and register the default instance of MSBuild installed on this machine.
            MSBuildLocator.RegisterDefaults();

            // The test solution is copied to the output directory when you build this sample.
            var workspace = MSBuildWorkspace.Create();

            Console.WriteLine("Reading...");
            var allMembers = new List <Method>();

            foreach (var item in args)
            {
                var members = await SolutionScanner.GetMembers(item, workspace);

                allMembers.AddRange(members);
            }

            Console.WriteLine("Parsing is done");

            var unreferenced = SolutionScanner.FindUnreferenced(allMembers, Roots.MainMethods.And(Roots.TestRelated));

            Console.WriteLine("Unreferenced Members:");

            foreach (var member in unreferenced)
            {
                Console.WriteLine(member.Name);
            }

            Console.WriteLine("");
            Console.WriteLine("");
            Console.WriteLine("");

            Console.WriteLine(unreferenced.Count + " unreferenced members");

            Console.Read();
        }
コード例 #6
0
        public async void FindUnreferencedMethods()
        {
            var libMembers = await SolutionScanner.GetMembers(@"..\..\..\TestClassLibrary\TestClassLibrary.csproj");

            var appMembers = await SolutionScanner.GetMembers(@"..\..\..\TestConsoleApp\TestConsoleApp.csproj");

            var unreferencedMembers = SolutionScanner.FindUnreferenced(libMembers.Concat(appMembers),
                                                                       isRoot: Roots.MainMethods.And(Roots.TestRelated).And(Roots.Generated)
                                                                       ).ToList();

            AssertNotIncluded(unreferencedMembers, "void TestClassLibrary.AClass.AMethod(int)");
            AssertNotIncluded(unreferencedMembers, "void TestClassLibrary.AClass.IndirectlyReferencedMethod(");

            AssertNotIncluded(unreferencedMembers, "static void TestClassLibrary.AClassUnitTests.ATest()");
            AssertNotIncluded(unreferencedMembers, "void TestClassLibrary.AClass.OnlyReferencedByTestMethod(");

            AssertNotIncluded(unreferencedMembers, "static void TestConsoleApp.Program.Main(string[])");
            AssertNotIncluded(unreferencedMembers, "void TestClassLibrary.Properties.Resource1.Resource1()");



            AssertIncluded(unreferencedMembers, "void TestClassLibrary.AClass.UnreferencedMethod()");
            AssertIncluded(unreferencedMembers, "void TestClassLibrary.AClass.IndirectlyUnreferencedMethod()");
        }