Устранение неполадок, связанных со средствами тестирования Visual Studio ALM
При тестировании кода некоторые условия создают ошибки и предупреждения или даже вызывают сбой теста. В этом разделе описаны некоторые из этих условий и представлены шаги по их устранению.
Устранение неполадок, связанных с выполнением тестов
В основании причин, препятствующих выполнению теста, как правило, лежит невозможность развернуть файл теста или другие файлы, необходимые для запуска теста.
Удаленные тесты. В случае удаленных тестов причиной сбоя могут также стать проблемы связи. Эти и другие ошибки на уровне теста и тестового запуска описаны в разделе Устранение неполадок, связанных с выполнением тестов.
Модульные тесты ASP.NET. Если модульный тест ASP.NET выполняется в процессе служб IIS, то в целях обеспечения безопасности можно запустить процесс ASP.NET от имени нестандартного пользователя, то есть с другим удостоверением процесса. В этом случае при выполнении теста может произойти сбой.
Устранение неполадок веб-тестов При выполнении веб-тестов могут возникать самые разнообразные ошибки. Они могут быть вызваны отсутствием атрибута привязки данных, проблемами с параметрами безопасности или попыткой получить доступ к веб-узлу за пределами брандмауэра. Дополнительные сведения см. в разделе Устранение неполадок веб-тестов производительности.
Устранение неполадок нагрузочных тестов. При выполнении нагрузочных тестов могут возникать самые разнообразные ошибки. Они могут быть вызваны проблемами с базой данных нагрузочного теста, набором счетчиков в нагрузочном тесте, неправильно настроенными агентом и контроллером тестирования или одним из тестов, содержащихся в нагрузочном тесте. Дополнительные сведения см. в разделе Устранение неполадок нагрузочных тестов.
Повторное подписание сборок со строгими именами
При выполнении модульных тестов выполняется тестирование двоичного файла, созданного на основе исходного кода. Если эти тесты выполняются посредством инструментирования двоичного файла, можно собирать сведения о покрытии кода; см. раздел Практическое руководство. Получение данных о покрытии кода. В процессе инструментирования в двоичный файл добавляется код, который создает сведения о покрытии кода.
Если тестируемый двоичный файл является сборкой со строгим именем, то в результате изменения кода, произведенного при инструментировании, подпись сборки становится недействительной. Поэтому Visual Studio автоматически пытается повторно подписать сборку непосредственно после завершения этапа инструментирования. Дополнительные сведения о сборках со строгими именами см. в разделе Сборки со строгими именами.
Сбой повторного подписания может быть вызван различными условиями. Сведения об устранении этих условий см. в разделе Инструментирование и повторная подпись сборок.
Данные о покрытии кода и средство VSPerfMon.exe
Если средство VSPerfMon.exe выполняется одновременно с тестами, в которых собираются данные о покрытии кода, могут происходить перечисленные ниже события.
Если средство VSPerfMon запускается с параметром TRACE или SAMPLE, возникает сбой параллельно выполняемого теста и сведения об ошибке отображаются на странице "Сведения о выполнении тестов".
Если средство VSPerfMon.exe запускается с параметром COVERAGE, процесс VSPerfMon.exe останавливается.
В обоих случаях единственным способом устранения ошибок является отказ от параллельного выполнения средства VSPerfMon.exe и тестов, в которых собираются данные о покрытии кода. Дополнительные сведения о средстве VSPerfMon.exe см. в разделе VSPerfMon.
Причины возникновения таких ситуаций
Ниже перечислены наиболее распространенные случаи запуска средства VSPerfMon.
Запущен сеанс профилирования, возможно, в экземпляре Visual Studio, отличном от экземпляра, в котором выполняются тесты.
Сбор данных о покрытии кода или данных профилирования осуществляется непосредственно с помощью средства VSPerfMon.exe или, что более распространено, посредством программы-оболочки VSPerfCmd.exe.
Неправильно отображаются данные о покрытии кода
Если тесты настроены для сбора данных о покрытии кода, однако эти данные не отображаются или содержат непредвиденные результаты, могла возникнуть одна из перечисленных ниже ситуаций.
Данные о покрытии кода не отображаются. Во время выполнения теста некоторые двоичные файлы, например DLL-библиотеки COM, загружаются из своих исходных расположений, а не из каталога развертывания теста. Инструментирование таких двоичных файлов должно выполняться на месте; в противном случае данные о покрытии кода не собираются, хотя тест успешно выполняется и никаких предупреждений на уровне запуска не создается. Дополнительные сведения см. в разделе Выбор папки для инструментирования.
Не отображается выделение покрытия кода. Если тесты выполнены и данные о покрытии кода собраны, то при просмотре результатов теста Visual Studio указывает код, протестированный в тестовом запуске, посредством его выделения в файле исходного кода. Можно выбрать цвета для обозначения охваченного, не охваченного и частично охваченного кода. Если часть этого выделения или все выделение не отображается, убедитесь, что выбранные цвета отличаются от цвета фона файла исходного кода. Дополнительные сведения о выборе цветов для выделения см. в подразделе "Изменение отображения данные о покрытии кода" раздела Практическое руководство. Получение данных о покрытии кода.
Неправильно выполняется объединение данных о покрытии кода. Результаты одного или нескольких тестовых запусков ASP.NET можно объединить, однако тогда данные ASP.NET в окне "Результаты покрытия кода" будут отображаться в разделе Объединенные результаты в различных узлах, а не в одном объединенном узле.
Отображаются не все объединенные данные о покрытии кода. После объединения данных о покрытии кода их можно экспортировать на диск в виде XML-файла. Если затем импортировать этот файл и добавить в него дополнительные данные, то статистика отображается не полностью.
Не удается импортировать данные о покрытии кода. Для импорта данных о покрытии кода среде Visual Studio требуется найти некоторые файлы на диске.
Инструментированные двоичные файлы перезаписываются. Предпринимается попытка сбора данных о покрытии кода из программы, которая выполняется во время ручного теста. Если для запуска программы используется сочетание клавиш CTRL+F5, это приводит к перестроению двоичного файла программы. В результате происходит перезапись инструментированного двоичного файла, и данные о покрытии кода не собираются.
Общие сведения о сборе данных о покрытии кода см. в разделе Практическое руководство. Получение данных о покрытии кода.
См. также
Задачи
Практическое руководство. Объединение данных об объеме покрытия кода
Устранение неполадок веб-тестов производительности
Устранение неполадок нагрузочных тестов