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); }
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); }
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()); } }
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); }
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(); }
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()"); }