Будет ли Visual Studio 2010 работать только с модульными тестами?

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

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

Итак, я не могу unit test создать какой-нибудь проект менее 4.0? Или я здесь что-то не так?

Ответ 1

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

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

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

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

Ответ 2

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

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