Как разместить тесты xUnit внутри тестируемого. Net Сборка ядра - PullRequest
0 голосов
/ 22 января 2020

У нас есть приложение create-реакции-приложение, которое мы хотим добавить (на стороне сервера) для использования модульных тестов с использованием xUnit. Цель: NET Core 2.1.

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

Дело в том, что теперь, когда я решил, что я хочу поместить тесты вместе с классами, которые нужно тестировать, внутри сборки, которая будет тестироваться как мне на самом деле это сделать?

Я прочитал здесь , что это должно быть вообще возможно, цитируя:

Тесты в xUnit не делают требуется отдельный тестовый проект Visual Studio в соответствии с требованиями MSTest.

Но я не могу найти никакой информации о том, как на самом деле это сделать. Я могу добавить пакет xunit NuGet без проблем, но если я добавлю пакет xunit.runner.visualstudio, я не смогу построить проект, потому что этот пакет добавляет вторую точку входа, что само по себе неудивительно (тестовый прогон действительно запускает проект в конце концов, и для этого нужна точка входа).

Попробовав пакет xunit.runner.msbuild, я вижу, что он восстанавливается с использованием .NETFramework, а не .NETCoreApp, так что это также кажется неуместным. Это действительно сборка, но тесты не запускаются, когда я делаю сборку релиза. Я предполагаю, что он не поддерживает. NET Core?

Тесты обнаруживаются VS в этом состоянии, но если я пытаюсь их запустить, он выдает:

Unable to find C:\ProjPath\Proj\bin\Debug\netcoreapp2.1\testhost.dll. Please publish your test project and retry.

Итак, я полагаю, что моя проблема не в том, чтобы добавить тест, а в том, чтобы найти способ запустить тесты. Я хотел бы иметь возможность запускать их как из Visual Studio (в настоящее время VS2017), так и из конвейера сборки DevOps.

...