Как указать имя папки вывода результатов веб-теста в VS2012 Ultimate

Я читал, читал и читал в течение нескольких дней, и я сдаюсь. Есть статьи, в которых рассказывается, как это сделать — почти. Либо как переименовать конкретный файл результатов, либо для тестирования в рамках 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 (бедняга Томанс так и не получил ответа на этот вопрос. Боюсь, я окажусь в той же лодке.)

https://msdn.microsoft.com/en-us/library/jj635153.aspx


person Barniferous    schedule 23.09.2015    source источник


Ответы (1)


Имя папки можно изменить на странице "Имена результатов теста" в редакторе файла .testsettings. Страницу можно увидеть на этом изображении из версии Visual Studio 2013 Ultimate.

введите здесь описание изображения

Я не знаю, как изменить расположение каталогов, содержащих результаты тестов.

Каталог out — это место, где развернуты файлы, используемые для тестов. В зависимости от типа теста файлы здесь включают .dll, .webtest, .loadtest, .csv (или .xml и т. д., которые используются для обработки данных) и другие.

Каталог in содержит файлы, сгенерированные при запуске тестов. Имена in и out имеют некоторый смысл, если рассматривать их с фаз работы, не связанных с выполнением тестов. Результаты развертывания записываются в каталог out. Входные данные для анализа результатов тестирования находятся в каталоге in.

person AdrianHHH    schedule 24.09.2015
comment
Спасибо за ответ, но я не вижу страницу с именами результатов теста. На странице «Общие» имеется определяемая пользователем схема. В примере создается папка WebRegressionTests 2015-09-23 14_27_20, но это единственное изменение папок в редакторе (я бы выложил картинку, но не знаю как). На странице модульных тестов есть параметры папок, но все они являются сборками и местами загрузки DLL, и я все равно провожу веб-тесты. Ничего подобного на странице веб-теста. Кстати, я бы опубликовал некоторый код, но, похоже, нечего было публиковать. (И почему вы не можете ввести новую строку в этом диалоговом окне?) - person Barniferous; 24.09.2015
comment
Добавлен скриншот @Barniferous. - person AdrianHHH; 24.09.2015
comment
Еще раз спасибо, что нашли время, чтобы попытаться помочь. 1. Страница VS2012 выглядит не так. 2. Это тот же параметр, который я описал, определяемая пользователем схема, вплоть до имени, как и параметр на странице «Общие» в редакторе VS2012 .testSettings. Изменение имени первой папки под папкой TestResults на самом деле не помогает. (На самом деле мы так и сделали — это папка WebRegressionTests 2015-09-23 14_27_20, о которой я упоминал). - person Barniferous; 27.09.2015