public override void Specify() { var someDllPath = arrange(() => GetPathOfBinDeployed("SomeTestLibrary.dll")); expect(() => File.Exists(someDllPath)); given("an AppDomain wrapper for a test DLL", delegate() { var appDomainWrapper = arrange(() => new AppDomainWrapper(someDllPath)); then("objects can be instantiated in the AppDomain", () => { var o = appDomainWrapper.CreateObject <NJasmine.Marshalled.Executor>("NJasmine.dll"); }); then("the test assembly's configuration file is loaded", () => { var o = appDomainWrapper.CreateObject <NJasmine.Marshalled.Executor.AppSettingLoader>("NJasmine.dll"); string result = o.Get("someConfigurationValue"); expect(() => result == "#winning"); }); then("the tests can be enumerated", () => { var result = UsingAppDomain.LoadTestNames(appDomainWrapper, someDllPath); expect(() => result.Contains("SomeTestLibrary.ASingleTest, first test")); }); }); }
public static void VisitTests(IEnumerable <string> sources, Action <TestCase> visitor) { foreach (var source in sources.Where(s => IsAlongsideNJasmineDll(s))) { using (var appDomain = new AppDomainWrapper(source)) { foreach (var result in UsingAppDomain.LoadTestNames(appDomain, source)) { visitor(new TestCase(result, new Uri(VSExecutorUri), source)); } } } }
private static void InternalRunTests( IEnumerable <TestCase> tests, IRunContext runContext, IFrameworkHandle frameworkHandle, string explicitlyIncluding) { var sink = new TestExecutorSinkAdapter(frameworkHandle, tests); foreach (var group in tests.GroupBy(t => t.Source)) { using (var appDomain = new AppDomainWrapper(@group.Key)) { UsingAppDomain.RunTests(@group.Key, appDomain, tests.Select(t => t.FullyQualifiedName).ToArray(), explicitlyIncluding, sink); } } }