2016-02-13 3 views
0

У нас есть модульные тесты, которые создаются и запускаются во время нашего TFS Build process. Это очень большой проект со сложным временем сборки. Существуют параметры, используемые в файлах msbuild .proj, которые передаются дочерним проектам и т. Д.TFS Build - отправка значений MSBuild Proj в среду выполнения vstest

Иногда во время выполнения тестирования устройства требуются некоторые из этих параметров .proj (которые могут быть известны только во время сборки) для того, чтобы функционировать правильно.

Мой предшественник справился с этим, создав файл во время сборки, используя события пост-сборки (например, ECHO SomethingINeedToKnow = True >> somefile) в файле vcxproj проекта модуля тестирования.

Затем во время выполнения unit unit dll's on AssemblyInitialize ищет этот файл и анализирует необходимые значения, вводя их в тестовую среду выполнения. Это очень изобретательно.

Однако старшим архитекторам не нравятся хаки, и они хотят, чтобы все было сделано по пути Microsoft, если это вообще возможно.

Так что мой вопрос заключается в следующем: я s там родной, Microsoft санкционированных способ передать ценности, унаследованные от vcxproj во время сборки в блок тестового выполнения?

Я думаю, что ответ отрицательный, и что текущее решение является лучшим решением, но я хочу убедиться.

p.s. Проверяемый код, как правило, неуправляемый C++, и управляются проекты модульных тестов. C++ using namespace Microsoft::VisualStudio::TestTools::UnitTesting (10,0, я считаю)

+1

Я не думаю, что это специфично для тестирования, это действительно вопрос о том, как передавать параметры любому внешнему процессу, поскольку юнит-тесты, вероятно, выполняются mstest.exe. К сожалению, это не похоже на то, что задача vanilla exec имеет способ установить переменные среды для запуска процесса. В конечном итоге создание командного файла может быть лучшим способом. –

ответ

1

Я знаю, что поставка Run Time Parameters to Tests может быть достигнута посредством сборки VNEXT. Не знаете, как отправить значения proj в среду выполнения vstest.

Смежные вопросы