Я читал, читал и читал в течение нескольких дней, и я сдаюсь. Есть статьи, в которых рассказывается, как это сделать — почти. Либо как переименовать конкретный файл результатов, либо для тестирования в рамках MSBuild (ТОННЫ таких), либо изменить КОРЕНЬ структуры папок размещения файлов. Эти ответы не помогают. Я тестирую непосредственно в VS 2012. [SadFace] В этот раз Google не был моим другом.
На наших тестовых машинах VS 2012 создает тестовые выходные файлы в нижней части длинной структуры папок. Выглядит это так (включая файлы):
<solutionFolder>\
TestResults\
<TestNameFrom.testSettingsFileWithDateAndTime>\
In\
<GuidForThisTestRun>\
<machineName>\
RecordedMedia.trmx
ScreenCapture.wmv
UITestActionLog.html
Эта файловая структура не только нелогична (поскольку нет связи между тестом и его папкой), но и неудобна для навигации. И НИЧЕГО нет ни в одной из папок от TestResults до папки с именем машины. Это означает, что нам нужно перемещаться по трем дополнительным папкам КАЖДЫЙ РАЗ, когда нам нужно просматривать результаты тестов или пересылать их разработчикам (при условии, что мы можем выяснить, в каких именно).
Если выполняется несколько тестов, в папке «В» будет несколько идентификаторов GUID, в которой будет папка с именем «имя компьютера», а файлы результатов теста — в папке с именем компьютера. Например (включая файлы):
RegressionTesting\
TestResults\
WebRegressionTests _2015-09-23 14_27_20_\
In\
36fe2581-7e14-c3d0-b0fa-1956665ab20d\
DEV0282C\
RecordedMedia.trmx
ScreenCapture.wmv
UITestActionLog.html
e3448182-eb47-1840-cbde-ca5bd5660270\
DEV0282C\
RecordedMedia.trmx
ScreenCapture.wmv
UITestActionLog.html
ed71d0f3-4fc5-42ab-96e3-b68efecdf4d8\
DEV0282C\
RecordedMedia.trmx
ScreenCapture.wmv
UITestActionLog.html
(Также есть папка «Исходящие», родственная папке «Входящие», но она всегда пуста.)
Я хотел бы сам указать структуру папок, включить (помимо даты и времени) имя и номер тестового примера (из Microsoft Test Manager), но ИСКЛЮЧИТЬ эти три пустых, неиспользуемых, бесполезных слоя папок. Моя идеальная структура папок выглядит так:
Regression\
TestResults\
64105 Delete Bumpuses Dogs 2015-09-23 14_27_20\
RecordedMedia.trmx
ScreenCapture.wmv
UITestActionLog.html
Путем исследования я обнаружил, что TestContext.TestResultsDirectory содержит абсолютный путь к папке результатов. Я подумал о попытке установить имя папки в коде, но TestContext.TestResultsDirectory доступен только для чтения. Грустный. Было бы так легко. . .
Я также рассматривал возможность ручного переименования папок и перемещения файлов в конце теста после закрытия браузера. Проблема: файлы (очевидно) создаются где-то в какой-то временной папке и не перемещаются в свои задокументированные папки до тех пор, пока код пользователя не выйдет.
Вот две страницы, которые я прочитал (это все, что мне разрешено публиковать!?!?):
Модульные тесты VS2012: как изменить расположение папки TestResults (бедняга Томанс так и не получил ответа на этот вопрос. Боюсь, я окажусь в той же лодке.)