PowerShell スクリプトを使用して XML を変更するために Jenkins を介して次のバッチ コマンドを実行しようとすると、
powershell.exe "C:\jenkins\workspace\TemplateJob\Scripts\Common\Prerequsites\Powershell\PowershellScripts\ModifyXML.ps1" "C:\jenkins\workspace\TemplateJob\Scripts\TestNgXML\RegressionTests\Regression.xml" "%Target_Browser%"
次のエラーが表示されます。
値 "System.Object[]" を "System.Xml.XmlDocument" 型に変換できません。エラー: 「リモート サーバーに接続できません」
ただし、同じコマンドは、Jenkins を介して Windows 8 で正常に機能し、Windows 7 でも、スレーブ エージェントが Web Start ( Slave-agent.jnlp
) として起動されている場合に正常に機能します。
「デスクトップとの対話をサービスに許可する」を有効にした後も問題が存在します。
次の例を見つけてください: XPath を使用して、指定された XML のパラメーター値をパラメーター値で更新する ModifyXML.ps1。
Regression.xml
:
<suite><parameter name="browser" value="ie" /></suite>
ModifyXML.ps1
:
param($path, $browser)
$xml = [xml](Get-Content $path) # Getting "Unable to connect to the remote server" error in this line
$xpathbrowser = "/suite/parameter[@name='browser']/@value"
$nodes = $xml.SelectNodes($xpathbrowser)
foreach ($node in $nodes) {
if ($node -ne $null) {
if ($node.NodeType -eq "Element") {
$node.InnerXml = $browser
} else {
$node.Value = $browser
}
}
}