Будет ли Visual Studio 2010 выполнять только 4.0 модульные тесты? - PullRequest
11 голосов
/ 13 апреля 2010

У меня есть разные проекты, написанные на .NET 3.5 и некоторые проекты модульных тестов, чтобы покрыть их. При преобразовании моего решения для использования в Visual Studio 2010 я сохраняю все свои проекты в версии 3.5, но модульные тесты вынуждены использовать 4.0? Таким образом, я больше не могу использовать их в своих обычных проектах.

В результате чего: Не удалось загрузить файл или сборку 'xxx.xxx.Core.UnitTest' или одну из ее зависимостей. Эта сборка построена средой выполнения, более новой, чем текущая загруженная среда, и не может быть загружена.

То есть я не могу выполнить юнит-тест любого проекта, меньшего, чем 4.0? Или я тут что-то не так делаю?

Ответы [ 2 ]

8 голосов
/ 13 апреля 2010

В настоящее время печальный ответ - да - поддерживаются только тесты, созданные с VS2010 (.NET 4.0).

Очевидно, что это сделано специально - посмотрите на этот отчет об "ошибке" в Microsoft connect для деталей.

Обновление
после того, как Microsoft увидела ошибку своего пути, они добавили поддержку модульных тестов .NET 3.5 в VS2010 SP1 - полную информацию можно найти в этом посте .

Вы также можете перенаправить существующие модульные тесты .NET 4.0 - Как перенаправить модульные тесты на .Net Framework 3.5 в VS 2010 SP1

3 голосов
/ 14 апреля 2010

Хотя тестовые проекты преобразуются в тестовый проект Visual Studio 2010 и компилируются для платформы .NET 4.0, к счастью, все сборки, на которые вы ссылаетесь и тестируете в своих тестах, могут все еще быть сборками .NET 3.5 (или какими-либо другими). Все остальное было бы катастрофическим. Но да, вы больше не можете использовать Visual Studio 2008 для запуска этих тестовых проектов.

Обходной путь, разумеется, заключается в том, чтобы сохранить исходный код для тестов, но иметь два разных тестовых проекта, один для VS2008 и один для VS2010, использующих тот же исходный код теста. Громоздкое, но рабочее решение.

...