Ich versuche, einen vorhandenen Satz von Jenkins Aufträge an die neue Pipeline-Syntax zu konvertieren, und ich verstehe nicht, wie die Post-Build-Aktion „TestNG Ergebnisse veröffentlichen“ zu konvertieren. Die Pipeline-Syntax Seite hilft nicht, da diese bestimmte Aktion nicht aufgeführt ist, so habe ich die folgende Syntax versucht:Execute „Publish TestNG Ergebnisse“ Schritt in Jenkinsfile
step([$class: 'hudson.plugins.testng.Publisher', reportFilenamePattern: 'test-output/testng-results.xml'])
Meine Vermutung ist, dass der Klassenname, den Inhalt von config.xml übereinstimmen würde in die aktuelle Konfiguration:
<hudson.plugins.testng.Publisher plugin="[email protected]">
<reportFilenamePattern>test-output/testng-results.xml</reportFilenamePattern>
<escapeTestDescp>true</escapeTestDescp>
<escapeExceptionMsg>true</escapeExceptionMsg>
<showFailedBuilds>false</showFailedBuilds>
<unstableOnSkippedTests>false</unstableOnSkippedTests>
<failureOnFailedTestConfig>false</failureOnFailedTestConfig>
</hudson.plugins.testng.Publisher>
jedoch eine Ausnahme ausgelöst wird, wenn die Ausführung der Anweisung:
java.lang.IllegalArgumentException: argument type mismatch
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
at org.jenkinsci.plugins.structs.describable.DescribableModel.instantiate(DescribableModel.java:193)
at org.jenkinsci.plugins.workflow.steps.StepDescriptor.newInstance(StepDescriptor.java:104)
at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:134)
at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:113)
at groovy.lang.GroovyObject$invokeMethod.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:151)
at org.kohsuke.groovy.sandbox.GroovyInterceptor.onMethodCall(GroovyInterceptor.java:21)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:115)
at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:149)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:146)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:123)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:123)
at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:15)
at WorkflowScript.testBranch(WorkflowScript:71)
So sind meine Fragen:
- ist es möglich, jede Art von Post-Job-Aktion mit der 'Schritt' Anweisung auszulösen?
- Wenn ja, gibt es eine Faustregel, um den Klassennamen und die Attributnamen zu finden?
Im Fall, dass für die Frage relevant ist, ich bin Jenkins 2.8 mit allen Pipeline-Plugins auf dem neuesten Stand laufen und die volle Jenkinsfile kann on GitHub
Ich hatte auch das TestNG Plugin 1.14 zu aktualisieren – checketts