2

Jenkins Job DSL плагин - чрезвычайно хороший способ хранения конфигурации CI в репо и изменения его от ветви до ветки.Jenkins job dsl and MSTest integration

Вопрос: есть ли естественный или близкий к естественному способу запуск тестов MSTest, анализ результатов и их отображение.

Прямо сейчас я звоню в powershell, но это дает мне только журналы, а не интеграцию с пользовательским интерфейсом.

def testSomeProjectJob = job(testSomeProjectJobName) { 
    steps { 
     powerShell("& ${vstest} '${root}/SomeProject/SomeProject.Tests/bin/Debug/SomeProject.Tests.dll' ") 
    } 
} 

Может быть есть издатель или трюк с шаблонами, или несколько советов написания плагина к работе DSL для этого


UPD: окончательный шаблона сценария для MSTest и VSTest с помощью @daspilker answer, Jenkins и xUnit PluginarchiveXUnit

job('RunTests') { 
     steps { 
      // VSTEST 
      powerShell("& ${vstest} 'path/to/Tests.dll' /logger:trx ") 
      // Or MSBUILD 
      powerShell("& ${msbuild} /testcontainer:'path/to/Tests.dll' ") 
     } 
     publishers { 
     archiveXUnit { 
      msTest { 
      pattern('**/*.trx') 
      // deleteOutputFiles() 
      } 
     } 
     } 
    } 

ответ

4

Использование PowerShell шаг является хорошим началом. Установите xUnit Plugin для анализа и отображения результатов. Он может анализировать всевозможные результаты тестирования, включая MSTest. И вы можете использовать DSL для настройки плагина.

Пример:

job('example') { 
    steps { 
    powerShell('...') 
    } 
    publishers { 
    archiveXUnit { 
     msTest { 
     pattern('path/to/test/results') 
     } 
    } 
    } 
} 
+0

Это действительно работает, спасибо! – aershov

2

Его для VSTest, но я должен был в конечном итоге с помощью блока конфигурационного, чтобы иметь возможность использовать его в DSL рабочих мест.

static Closure useVsTest(List<String> dlls) { return { it/'builders' << 'org.jenkinsci.plugins.vstest__runner.VsTestBuilder' { vsTestName 'VS 14.0' testFiles dlls.join('\n') settings '' testCaseFilter '' enablecodecoverage false useVsixExtensions true platform 'x86' otherPlatform '' framework 'framework45' otherFramework '' logger 'trx' otherLogger '' cmdLineArgs '/TestAdapterPath:"."' failBuild true } } }

+0

Это очень удобно! – aershov

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