В MyProject.dll нет доступных тестов, но Test Explorer показывает их - PullRequest
0 голосов
/ 12 февраля 2019

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

Нет тестадоступно в Путь \ К \ My \ TestProject.dll.Убедитесь, что обнаружитель тестов и исполнители зарегистрированы, а настройки версии платформы и фреймворка соответствуют требованиям, и повторите попытку.

Test Explorer показывает мои тесты, но не может их запустить.

Кстати,Это проекты WPF C # .

У меня есть тестовые классы с такими методами тестирования:

    [TestFixture]
    [Category("Something")]
    public class SomeTestClass
    {
        [Test]
        public void SomeMethodThatDoesntWork()
        {
            using (var ms = new MemoryStream())
            {
                System.Diagnostics.Debugger.Launch();
                Option savedOptions = new ....
...
  • У меня есть 3 проекта в моем решении* Целевой каркас каждого проекта является .NET 4.5.2 , а Целевой платформой каждого проекта является x64 .

  • Пакеты NuGet: NUnit 2.6.4и NUnit3TestAdapter 3.12.0.

NUnit 2.6.4 из-за того, что у меня есть некоторые атрибуты, такие как ExpectedExceptionAttribute, который уже удален в более новых версиях NUnit.

Я уже установил Test \ Test Settings \ DefaultАрхитектура процессора до x64, а также пробовал x86.

Вывод тестовой консоли:

enter image description here

Тест Exlorer:

enter image description here

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Наконец-то я решил проблему за 2 дня.

Существовали зависимости DLL, которые эти Visual Studio не могли заметить и не показывали мне никаких предупреждений или ошибок. Dependency Walker помог мне найти эти зависимости моих DLL.

Так что же я снова узнал?Visual Studio может содержать ошибки, а иногда и не очень умный.

0 голосов
/ 12 февраля 2019

Вы можете попробовать , это , я могу решить вашу проблему.

Кроме того, вы можете в последней версии NUnit изменить атрибут ExpectedExceptionAttribute на this (или другойпримеры из комментариев) или просто используйте следующие утверждения:

Assert.Throws<Exception>(() => 
{
    // Test Code
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...