Esempio n. 1
0
 private bool PassesTestFilters(MCutTestEntity t)
 {
     if (TestTypeNameFilter != null && !TestTypeNameFilter.IsMatch(t.GetType().Name))
     {
         return(false);
     }
     if (TestMethodNameFilter != null && !TestMethodNameFilter.IsMatch(t.OwningTestMethod.MethodName))
     {
         return(false);
     }
     if (ClassNameFilter != null && !ClassNameFilter.IsMatch(t.OwningTestMethod.OwningClass.ClassFullName))
     {
         return(false);
     }
     return(true);
 }
Esempio n. 2
0
        public bool Run(byte[] testAssembly, string template, string testClassName, string testMethodName = null)
        {
            var asm = Assembly.Load(testAssembly);

            try
            {
                TestSourceFactory.Init(template);
            }
            catch (InvalidOperationException ex)
            {
                ErrorMessage = ex.Message;
                return(false);
            }

            var runner = new NUnitTestAssemblyRunner(new DefaultTestAssemblyBuilder());

            runner.Load(asm, new Dictionary <string, object>());
            var listener = new CustomListener();

            ITestResult result;
            ITestFilter filter;
            string      str = string.Empty;

            if (string.IsNullOrEmpty(testMethodName))
            {
                result = runner.Run(listener,
                                    new ClassNameFilter(testClassName));
                filter = new ClassNameFilter(testClassName);
            }
            else
            {
                result = runner.Run(listener,
                                    new AndFilter(new ClassNameFilter(testClassName),
                                                  new MethodNameFilter(testMethodName)));

                filter = new AndFilter(new ClassNameFilter(testClassName),
                                       new MethodNameFilter(testMethodName));
            }

            ErrorMessage = listener.Message;

            return(result.ResultState.Status != TestStatus.Failed);
        }