Example #1
0
        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));
             }
         }
     }
 }
Example #3
0
        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);
                }
            }
        }