public override IList<IAssemblyData> ReadAssembly(string assemblyPath, string workingDirectory, GroupingType groupType, bool isTesting) { var dummyTestPath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "RunnerTests.dll"); var assData = new AssemblyData(dummyTestPath, "RunnerTests", groupType); var cat1 = new CategoryData(assData, "Smoke"); var cat2 = new CategoryData(assData, "Integration"); var cat3 = new CategoryData(assData, "Failure"); assData.Categories = new ObservableCollection<ITestGroup>() { cat1, cat2, cat3 }; var fix1 = new FixtureData(assData, "FixtureA"); var fix2 = new FixtureData(assData, "FixtureB"); assData.Fixtures = new ObservableCollection<ITestGroup>() { fix1, fix2 }; var testModelPath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "empty.rfa"); var test1 = new TestData(fix1, "TestA", testModelPath, false); var test2 = new TestData(fix1, "TestB", testModelPath, false); var test3 = new TestData(fix1, "TestC", testModelPath, false); var test4 = new TestData(fix2, "TestD", testModelPath, false); var test5 = new TestData(fix2, "TestE", @"C:\foo.rfa", false); cat1.Tests = new ObservableCollection<ITestData>() { test1, test2 }; cat2.Tests = new ObservableCollection<ITestData>() { test3 }; cat3.Tests = new ObservableCollection<ITestData>() { test4, test5 }; fix1.Tests = new ObservableCollection<ITestData>() { test1, test2, test3 }; fix2.Tests = new ObservableCollection<ITestData>() { test4, test5 }; fix1.Assembly = assData; fix2.Assembly = assData; cat1.Assembly = assData; cat2.Assembly = assData; cat3.Assembly = assData; return new List<IAssemblyData>{assData}; }
public static bool ReadTest(MethodInfo test, IFixtureData data, string workingDirectory) { //set the default modelPath to the empty.rfa file that will live in the build directory string modelPath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "empty.rfa"); var testAttribs = CustomAttributeData.GetCustomAttributes(test); var testModelAttrib = testAttribs.FirstOrDefault(x => x.Constructor.DeclaringType.Name == "TestModelAttribute"); if (testModelAttrib != null) { //overwrite the model path with the one //specified in the test model attribute var relModelPath = testModelAttrib.ConstructorArguments.FirstOrDefault().Value.ToString(); if (workingDirectory == null) { // If the working directory is not specified. // Add the relative path to the assembly's path. modelPath = Path.GetFullPath(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), relModelPath)); } else { modelPath = Path.GetFullPath(Path.Combine(workingDirectory, relModelPath)); } } var runDynamoAttrib = testAttribs.FirstOrDefault(x => x.Constructor.DeclaringType.Name == "RunDynamoAttribute"); var runDynamo = false; if (runDynamoAttrib != null) { runDynamo = Boolean.Parse(runDynamoAttrib.ConstructorArguments.FirstOrDefault().Value.ToString()); } var testData = new TestData(data, test.Name, modelPath, runDynamo); data.Tests.Add(testData); var category = string.Empty; var categoryAttribs = testAttribs.Where(x => x.Constructor.DeclaringType.Name == "CategoryAttribute"); foreach (var categoryAttrib in categoryAttribs) { category = categoryAttrib.ConstructorArguments.FirstOrDefault().Value.ToString(); if (!String.IsNullOrEmpty(category)) { var cat = data.Assembly.Categories.FirstOrDefault(x => x.Name == category); if (cat != null) { cat.Tests.Add(testData); } else { var catData = new CategoryData(data.Assembly, category); catData.Tests.Add(testData); data.Assembly.Categories.Add(catData); } } } Console.WriteLine("Loaded test: {0}", testData); return(true); }
public static bool ReadTest(MethodInfo test, IFixtureData data, string workingDirectory) { //set the default modelPath to the empty.rfa file that will live in the build directory string modelPath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "empty.rfa"); var testAttribs = CustomAttributeData.GetCustomAttributes(test); var testModelAttrib = testAttribs.FirstOrDefault(x => x.Constructor.DeclaringType.Name == "TestModelAttribute"); if (testModelAttrib != null) { //overwrite the model path with the one //specified in the test model attribute var relModelPath = testModelAttrib.ConstructorArguments.FirstOrDefault().Value.ToString(); modelPath = Path.GetFullPath(Path.Combine(workingDirectory, relModelPath)); } var runDynamoAttrib = testAttribs.FirstOrDefault(x => x.Constructor.DeclaringType.Name == "RunDynamoAttribute"); var runDynamo = false; if (runDynamoAttrib != null) { runDynamo = Boolean.Parse(runDynamoAttrib.ConstructorArguments.FirstOrDefault().Value.ToString()); } var testData = new TestData(data, test.Name, modelPath, runDynamo); data.Tests.Add(testData); var category = string.Empty; var categoryAttribs = testAttribs.Where(x => x.Constructor.DeclaringType.Name == "CategoryAttribute"); foreach (var categoryAttrib in categoryAttribs) { category = categoryAttrib.ConstructorArguments.FirstOrDefault().Value.ToString(); if (!String.IsNullOrEmpty(category)) { var cat = data.Assembly.Categories.FirstOrDefault(x => x.Name == category); if (cat != null) { cat.Tests.Add(testData); } else { var catData = new CategoryData(data.Assembly, category); catData.Tests.Add(testData); data.Assembly.Categories.Add(catData); } } } return true; }