Teamcity - 从 Powershell 生成工件

Teamcity - generate artifact from Powershell

我正在使用 Powershell 构建步骤并希望生成一个文件并将其包含在工件中。这是我试过的,但没有出现:

param(
[parameter(Mandatory=$true)] [string]$controller
)
Write-Output "Controller: $controller"

$testsettingsXML = @"
<?xml version="1.0" encoding="UTF-8"?>
<TestSettings name="Remote" id="36b029f0-1e34-4c17-b7b1-3e6a0284a08e" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
  <Description>These are default test settings for a local test run.</Description>
  <RemoteController name="$controller" />
  <Execution location="Remote">
    <TestTypeSpecific>
      <UnitTestRunConfig testTypeId="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b">
        <AssemblyResolution>
          <TestDirectory useLoadContext="true" />
        </AssemblyResolution>
      </UnitTestRunConfig>
    </TestTypeSpecific>
    <AgentRule name="AllAgentsDefaultRole">
    </AgentRule>
  </Execution>
  <Properties />
</TestSettings>
"@

#write the testsettings file out to disk.
$testsettingsXML | Out-File -FilePath "./remotehack.testsettings" -Encoding utf8

我在 metarunner 中做了类似的事情,效果很好。为什么不在这里?

问题有三方面。

  1. Powershell 的最后一行应如下所示:

    $testsettingsXML | Out-File -FilePath "remotehack.testsettings" -Encoding utf8

  2. 我没有将 remotehack.testsettings/remotehack.testsettings 作为工件依赖项包含在内

  3. 我没有在常规设置下包含工件路径 "remotehack.testsettings"。

一些新手错误。