コード例 #1
0
        private void LoadTestSuiteRunners(Assembly assembly)
        {
            _testSuiteRunners = new SortedDictionary <string, ITestSuiteRunner>();

            ITestSuiteRunner[] tsr = assembly.GetCustomAttributes(typeof(ITestSuiteRunner), false)
                                     as ITestSuiteRunner[];
            if (tsr != null && tsr.Length == 1)
            {
                _testSuiteRunners[String.Empty] = tsr[0];
            }
            else
            {
                _testSuiteRunners[String.Empty] = new DefaultTestSuiteRunner();
            }

            TestSuiteAttribute[] tsa = assembly.GetCustomAttributes(typeof(TestSuiteAttribute), false)
                                       as TestSuiteAttribute[];
            if (tsa != null)
            {
                for (int i = 0; i < tsa.Length; i++)
                {
                    ITestSuiteRunner runner = Activator.CreateInstance(tsa[i].TestSuiteRunner) as ITestSuiteRunner;
                    if (runner != null)
                    {
                        _testSuiteRunners[tsa[i].Namespace] = runner;
                    }
                }
            }
        }
コード例 #2
0
        private ITestSuiteRunner GetTestSuiteRunner(string namespacePath)
        {
            ITestSuiteRunner runner = null;

            string[] keys  = new List <string>(_testSuiteRunners.Keys).ToArray();
            int      index = Array.BinarySearch <string>(keys, namespacePath);

            if (index >= 0)
            {
                runner = _testSuiteRunners[keys[index]];
            }
            else
            {
                runner = _testSuiteRunners[keys[(index ^ -1) - 1]];
            }
            return(runner);
        }