У меня есть файл содержимого в моем основном проекте, который находится на ~/bin/foo/FOO32.EXE, который иногда выпадает из исходного контроля (люди возились с .gitignore) ; это каждый раз нарушает нашу сборку.тесты сборки: проверьте, существует ли файл в другом проекте
Я решил создать базовый тестовый проект, который позволит убедиться, что файл находится там, где он должен быть. Проект тестирования будет запущен на нашем бамбуковом сервере как часть сборки.
Я хочу протестировать в своем тестовом проекте, что файл существует, но путь может изменить динамический на основе конфигурации сборки (мы создаем 32-разрядную версию и любую версию ЦП, что означает, что каталоги bin могут изменять бит)
Как я могу проверить, существует ли файл в моем встроенном проекте как часть единичного теста? Я ожидаю, что это будет что-то вроде этого:
[TestMethod]
public void BbqExeExists()
{
var basePath = ??? some expression that gets the main project's app directory
var basefilePath = @"foo/FOO32.EXE";
var fullPath = Path.Combine(basePath, basefilePath);
Assert.IsTrue(File.Exists(fullPath));
}
Не можете ли вы просто включить файл в проект и выполнить операцию сборки: нет, скопировать в вывод: всегда? Тестирование присутствия файла в модульных тестах обычно является болью, а также зависит от вашего тестового бегуна ... –
@AlexeiLevenkov Проблема в том, что наши разработчики иногда выводят файл из репозитория, поэтому он удаляется (первый этап процесса сборки синхронизируется с Сделки рЕПО). Установка файла для копирования на вывод всегда не помогает, если его там нет. Я хочу отправить разработчика, который удалил файл nastygram за то, что он не обратил внимания, и определить, что сборка недействительна. –
Может быть, событие с предварительной сборкой вместо единичного теста? https://dillieodigital.wordpress.com/2012/11/27/quick-tip-aborting-builds-in-visual-studio-based-on-file-contents/ –