Несколько тестовых проектов Silverlight в решении - PullRequest
1 голос
/ 18 апреля 2010

Я собираю несколько библиотек Silverlight 4.0, которые являются частью одного решения. Мне нравится разбивать их на отдельные проекты, и у меня есть проект модульного тестирования для каждого:

SolutionX
-LibraryProject1
---Class1.cs
---Class2.cs
-LibraryProject1.Test
---Tests1.cs
---Tests2.cs
-LibraryProject2
---Class1.cs
---Class2.cs
---CLass3.cs
-LibraryProject2.Test
---Tests1.cs
---Tests2.cs
---Tests3.cs
-LibraryProject3
---Class1.cs
-LibraryProject3.Test
---Tests1.cs

Это прекрасно работает при использовании обычных тестовых проектов VS и инфраструктуры, потому что я могу создавать и выполнять список тестов, которые агрегируются из каждого тестового проекта. Но с модулем модульного тестирования Silverlight, поскольку проект модульного тестирования Silverlight должен быть «начальным проектом», я не могу понять, как запустить набор тестов из каждого тестового проекта за один раз. Я должен запустить каждый в отдельности, а затем переключать стартовый проект каждый раз. Я бы предпочел избегать создания сложных скриптов сборки или определений сборки - есть ли способ запустить все тесты одновременно?

-Спасибо

Ответы [ 2 ]

2 голосов
/ 20 августа 2010

Я не знаю, ищите ли вы решение для этого, но возможно создать один проект, который будет запускать все тесты в нескольких сборках. Я только что создал один проект, в котором нет никаких тестов, дал ему ссылку на все остальные ваши тестовые сборки и затем изменил метод Application_Startup на что-то вроде этого.

    private void Application_Startup(object sender, StartupEventArgs e)
    {
        UnitTestSettings settings = UnitTestSystem.CreateDefaultSettings();
        var testAssemblies = Deployment.Current.Parts.Where(p => p.Source.Contains("Tests")).ToList();
        foreach(var assembly in testAssemblies)
        {
            settings.TestAssemblies.Add(new AssemblyPart().Load(GetResourceStream(new Uri(assembly.Source, UriKind.Relative)).Stream));
        }

        RootVisual = UnitTestSystem.CreateTestPage(settings);
    }

Вам нужно будет изменить p.Source.Contains("Tests") на какой-либо метод, который может соответствовать всем вашим проектам модульных тестов, но затем вы сможете запустить один проект, и он даст вам хорошее представление дерева всех запущенных сборок.

1 голос
/ 18 апреля 2010

Да, к сожалению, без поддержки списка тестов это не так просто.

Я бы рекомендовал объединить тесты в один проект модульных тестов Silverlight, поместив разные наборы в папки.

Затем можно использовать функцию «Выражение тега» платформы, чтобы выбрать, какие тесты вы действительно хотите запустить во время выполнения. Эту функцию проще использовать в новой версии Silverlight Toolkit, выпущенной в апреле 2010 года.

...