Пример #1
0
        public void LoadTests(string drtlist)
        {
            XmlDocument doc = new XmlDocument();

            doc.Load(drtlist);
            XmlNodeList tests_xml    = doc.SelectNodes("/DRTList/Test");
            XmlNodeList nested_lists = doc.SelectNodes("/DRTList/NestedTests");

            bool   past_fixture_start = (fixture_start == null);
            string base_directory     = Path.GetDirectoryName(drtlist);

            foreach (XmlNode test in tests_xml)
            {
                Test t = Test.Create(base_directory, test);

                if (t == null)
                {
                    Console.Error.WriteLine("Unable to load test:  {0}", test);
                    continue;
                }

                if (!past_fixture_start)
                {
                    if (t.Id == fixture_start)
                    {
                        past_fixture_start = true;
                    }
                    else
                    {
                        continue;
                    }
                }

                if (categories != null && !t.IsInCategoryList(categories))
                {
                    continue;
                }

                if (exclude_categories != null && t.IsInCategoryList(exclude_categories))
                {
                    continue;
                }

                if (fixtures != null && !fixtures.Contains(t.Id))
                {
                    continue;
                }

                if (exclude_fixtures != null && exclude_fixtures.Contains(t.Id))
                {
                    continue;
                }

                if (t.Ignore)
                {
                    ignored_tests.Add(t);
                    continue;
                }

                tests.Add(t);
            }

            foreach (XmlNode node in nested_lists)
            {
                string inputFile = null;

                if (node.Attributes ["inputFile"] != null)
                {
                    inputFile = node.Attributes ["inputFile"].Value;
                }

                if (inputFile == null)
                {
                    continue;
                }

                if (inputFile == "MS_DRTLIST")
                {
                    inputFile = Environment.GetEnvironmentVariable("MS_DRTLIST");
                    Console.WriteLine("Big hack to find MS' drtlist: '{0}'", inputFile);
                    if (inputFile == null || inputFile == string.Empty)
                    {
                        continue;
                    }
                }

                inputFile = GetDrtlistLocation(inputFile);

                LoadTests(inputFile);
            }
        }