2

Heroku CI は TAP (Test Anything Protocol) 出力をサポートし、検出されたときに強化された UI を提供します。

しかし、Heroku CI にこの拡張 UI を表示させることができませんでした。私の推測では、私が作成している TAP 出力は完全に正しくはありませんが、何が問題なのかわかりません。

特に Heroku CI で動作する TAP 出力があり、強化された UI が確実に表示されている場合は、以下に例を挙げていただけますか?

さらに、TAP 出力の前および/または後に追加情報を出力してもよいかどうか、または TAP レポート周辺の出力を完全に空にする必要があるかどうかを確認できますか?

4

1 に答える 1

0

執筆時点では、Heroku では、先頭に空白がある TAP 出力行は有効ではありません。ruby-buildpack の Heroku CI のデフォルト テスト コマンドは、すべてのテスト出力を自動インデントするため、これらの自動インデントが原因で TAP 出力が無効でした。

自動インデントを回避して有効な TAP 出力を生成するには、 でカスタム テスト スクリプトを指定しますapp.json。カスタム テスト スクリプトを使用すると、ruby-buildpack の自動インデントがバイパスされます。

app.jsonカスタム テスト スクリプトの例を次に示しbin/rspecます。

{
  "environments": {
    "test": {
      "addons": ["heroku-postgresql:in-dyno"],
      "buildpacks": [
        { "url": "heroku/ruby" },
        { "url": "https://github.com/heroku/heroku-buildpack-google-chrome" }
      ],
      "env": {
        "DISABLE_SPRING": "true"
      },
      "scripts": {
        "test": "bin/rspec"
      }
    }
  }
}

Heroku CI が拡張 UI を表示するために処理する有効な TAP (バージョン 12) 出力の例を次に示します (進行中のビルドを監視している場合は、ページを更新して拡張 UI を表示する必要がある場合があります)。

# Randomized with seed 12345

1..2
ok 1 - PayHelper#js_host returns production host as default
not ok 2 - PayHelper#js_url returns production v9 URL as default
#
#  PayHelper#js_url returns production v9 URL as default
#  Failure/Error: expect(helper.js_url).to eq 'https://example.com/v9/'
#  
#    expected: value != "https://example.com/v9/"
#         got: "https://example.com/v9.0/"
#  
#    (compared using ==)
#  # ./spec/helpers/pay_helper_spec.rb:15:in `block (3 levels) in <top (required)>'
#  # -e:1:in `<main>'
1..2

# Randomized with seed 12345

上記の出力は TAP 仕様バージョン 12 ですが、Heroku は TAP 仕様バージョン 13 もサポートしていることは理解しています。

于 2018-07-09T10:53:14.987 に答える