Поделиться через


Устранение неполадок в обычных тестах

Обновлен: Ноябрь 2007

При выполнении обычных тестов может возникнуть следующая ошибка: "При выполнении обычного теста на 64-разрядной платформе функция сбора данных о покрытии кода не работает. Для устранения ошибки используются сведения из раздела Обход 32-разрядного ограничения.

Обход 32-разрядного ограничения

Инструментирование покрытия кода работает только в 32-разрядном режиме, но не в 64-разрядном. Это связано с тем, что после инструментирования для покрытия кода сборка может быть загружена только в 32-разрядном режиме.

ms404657.alert_note(ru-ru,VS.90).gifПримечание.

При выполнении модульного теста на 64-разрядном компьютере без сбора данных покрытия кода данное ограничение не применяется. Это происходит потому, что обработчик тестов "VSTestHost.exe", загружающий библиотеку класса, выполняется в 32-разрядном процессе.

Для обычного теста приложение-оболочка построено с параметром "Any CPU", которое на 64-разрядном компьютере выполняется как 64-разрядный процесс. Когда данный 64-разрядный процесс пытается загрузить 32-разрядную сборку, возникает ошибка. Решить проблему можно одним из следующих способов.

Если общий тест непосредственно создает оболочку для двоичного файла, скомпилированного из рабочего кода, используется следующий метод.

  • Изменение конфигурации решения на платформу x86

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

  • Инструментирование приложения, загружающего двоичный файл рабочего кода

  • Изменение параметров построения для приложения, загружающего двоичный файл рабочего кода

Изменение конфигурации решения на платформу x86

Изменение конфигурации решения с "Any CPU" на "x86".

Изменения конфигурации решения

  1. Щелкните правой кнопкой мыши решение и выберите пункт Свойства.

    Откроется диалоговое окно Страницы свойств решения.

  2. В области Свойства конфигурации щелкните Конфигурация.

  3. Щелкните Диспетчер конфигураций.

    Откроется диалоговое окно Диспетчер конфигураций.

  4. В области Платформа активного решения нажмите New.

    Откроется диалоговое окно Создание платформы решения.

  5. В области Введите или выберите новую платформу щелкните x86.

  6. В диалоговом окне Создание платформы решения нажмите кнопку ОК.

  7. Чтобы сохранить изменения, нажмите кнопку Да в диалоговом окне запроса.

  8. Убедитесь, что в диалоговом окне Диспетчер конфигураций в области Активная платформа решения выбрано значение x86 и нажмите кнопку Закрыть.

  9. В диалоговом окне Страницы свойств решения нажмите кнопку ОК.

Инструментирование приложения, загружающего двоичный файл рабочего кода

Для инструментирования промежуточного приложения или окружения теста, являющегося оболочкой обычного теста, используйте следующую процедуру. Это промежуточное приложение выполнит код для тестирования. Приложение будет принудительно выполнено в 32-разрядном режиме.

ms404657.alert_note(ru-ru,VS.90).gifПримечание.

Данная процедура будет работать только при наличии файла символов для инструментируемого файла.

Указание исполняемого файла для инструментирования

  1. В Visual Studio откройте тестовый проект, содержащий обычный тест.

  2. В обозревателе решений откройте папку Элементы решения.

  3. В папке "Элементы решения" дважды щелкните файл с расширением TESTRUNCONFIG.

  4. Откроется диалоговое окно конфигурации тестового запуска.

  5. Щелкните Покрытие кода.

  6. В области Выберите артефакты для инструментирования укажите промежуточное приложение, выполняющее двоичный файл рабочего кода.

    ms404657.alert_note(ru-ru,VS.90).gifПримечание.

    Если двоичный файл промежуточного приложения отсутствует в области Выберите артефакты для инструментирования, нажмите кнопку Добавить сборку. В диалоговом окне Выбор сборок для инструментирования укажите файл и нажмите кнопку Открыть.

  7. Нажмите кнопку Применить, а затем кнопку Закрыть.

Изменение параметров построения для приложения, загружающего двоичный файл рабочего кода

Для инструментирования любого промежуточного приложения или окружения теста, являющегося оболочкой обычного теста, используйте следующую процедуру. Это промежуточное приложение выполнит код для тестирования.

В этой процедуре за счет изменения параметров выполняется построение промежуточного приложения для платформы x86.

ms404657.alert_note(ru-ru,VS.90).gifПримечание.

Это можно сделать только если приложение в оболочке создается из проекта в решении.

Изменение параметров построения для приложения в оболочке

  1. В обозревателе решений щелкните правой кнопкой мыши проект, из которого построено промежуточное приложение, а затем в контекстном меню выберите пункт Свойства.

    Откроется страница свойств проекта.

  2. Перейдите на вкладку Построение.

  3. В качестве целевой платформы укажите x86.

  4. В меню Файл выберите команду Сохранить выбранные элементы.

См. также

Задачи

Практическое руководство. Сбор данных о покрытии кода с помощью обычных тестов