Выполнить команду командной строки из CruiseControl.NET - PullRequest
5 голосов
/ 08 марта 2011

У меня есть этот блок кода в конфигурации CruiseControl.NET :

<exec>
    <executable>C:\Windows\System32\cmd.exe</executable>
    <buildArgs>/C SETX SELENIUM_BROWSER googlechrome /M</buildArgs>
</exec>

За ним следует команда выполнения NUnit , которая будет запускать некоторые Селен тесты на моем сайте.Идея состоит в том, что эта команда изменяет браузер тестирования (системную переменную среды) до запуска тестов.

Проблема в том, что команда, похоже, не работает.В тестах по-прежнему используется браузер по умолчанию, Firefox.Это работает, если я вручную изменяю переменную среды.

Что я делаю не так?

РЕДАКТИРОВАТЬ:

Я попытался поместить команду в пакетный файл и выполнить ее, ноэто все еще не работало:

<exec executable="C:\CCNet\setChrome.bat" />

Содержимое пакетного файла:

SETX SELENIUM_BROWSER googlechrome /M

1 Ответ

8 голосов
/ 08 марта 2011

Форматирование команды таким образом устанавливает правильную переменную среды:

<exec>
    <executable>cmd</executable>
    <buildArgs>/C SETX SELENIUM_BROWSER googlechrome /M</buildArgs>
</exec>

Теперь мне нужно выяснить, почему мои тесты NUnit неправильно ее выбирают.

ОБНОВЛЕНИЕ:

Должен был использовать элемент environment в исполняемой задаче для передачи переменных в тест.Например:

<exec>
    <executable>make</executable>
    <baseDirectory>D:\dev\MyProject</baseDirectory>
    <buildArgs>all</buildArgs>
    <buildTimeoutSeconds>10</buildTimeoutSeconds>
    <successExitCodes>0,1,3,5</successExitCodes>
    <environment>
        <variable>
            <name>MyVar1</name>
            <value>Var1Value</value>
        </variable>
        <variable name="MyVar2" value="Var2Value" />
    </environment>
</exec>

Я фактически реализовал настройку браузера в небольшом текстовом файле конфигурации в качестве обходного пути, но этот элемент сделал бы это проще, и мне не нужно было бы запускать какие-либо команды командной строки.

...