2011-09-09 4 views
19

同じネットワーク上でSSH経由で接続されたデュアルコアマシンでパラレルテストを実行するにはどうすればよいですか?rails distributed parallel tests

https://github.com/grosser/parallel_tests地元の労働者のための細かい動作しますが、複数のマシン

https://github.com/qxjit/deep-test上でそれを実行する方法はありません - 私はそれを実行している時に運がなかったしましたが、

t.distributed_hosts 
のような例のラインがあります私は、私が試した

のssh労働者のために永遠に待っている問題を持っハイドラでエラー

をスロー

ビュッフェのアルファ版は、テストレポを作成し、それを実行しましたが、運

fatal: Not a git repository (or any of the parent directories): .git 
fatal: Not a git repository (or any of the parent directories): .git 
fatal: Not a git repository (or any of the parent directories): .git 
fatal: Not a git repository (or any of the parent directories): .git 
fatal: Not a git repository (or any of the parent directories): .git 
fatal: Not a git repository (or any of the parent directories): .git 
fatal: Not a git repository (or any of the parent directories): .git 
fatal: Not a git repository (or any of the parent directories): .git 
fatal: Not a git repository (or any of the parent directories): .git 
fatal: Not a git repository (or any of the parent directories): .git 
fatal: Not a git repository (or any of the parent directories): .git 
fatal: Not a git repository (or any of the parent directories): .git 

と私は唯一の標準単位/統合/機能テストでは、すべての

ない凝っを実行したいです。

+1

独自の並列/分散テスト設定を構築することは非常に困難です。私たちは、これを管理するTDDium(http://www.tddium.com/)というサービスを使い、Herokuのようなgitリモートサーバーを使って実行するバッチのコードを受け入れることで幸運を得ました。私はそれらを強く勧めます。 – Winfield

+1

Winfieldと同じ無駄に、私たちはCircleCi(http://circleci.com)を使ってテストを並列化し、大きな成功を収めています。 – Mitch

+0

parallel_testsが複数のマシンに適していないのはなぜですか?ディープテストではどんなエラーが投げられますか? –

答えて

1

このリンクを試してみてください。順不同で、ここでいくつかを一覧表示するには:

  1. Travis CI (there is pro version for private repos)
  2. セマフォのうちいずれかのわからない(Herokuのアドオンの存在)(既に述べた)parallelism even on the free plans
  3. Tddium
  4. Codeship(Herokuのアドオン存在、ボックスのサポート)
  5. サークルCI (Parallelism on paid plans)
  6. スナップ-CI(Pipeline parallelismはなく、いくつかの構成で、あなたに大きな制御を可能にします。また、彼らが追加される可能性があります

さまざまなレベルのプロジェクトでこれらのすべてを試してみましたが、すべてうまく機能しています。その違いは、サービスがどのように価格設定されるかである。サブスクリプションを支払う気にならない場合は、テストをプロセスに分割するという面倒を避ける代わりに、これらのサービスに頼るのが最善の方法です。もちろん、その場合のコスト削減を正当化する可能性のある十分な規模でそれを行う場合は例外です。

  • 並列同じプロセス内でまだ多くの努力なし(以上のコアを持つ)十分にがっしりした体格のボックスにあなたに良い結果を与えることができますしない限り、あなたの最初のchocieする必要があります:心に留めておくべきいくつかの他の点は

    すでにオプションを使い果たしている。

  • 最終的な目標がテストの高速化である場合は、Travis-CIがより良いファイルシステムとインメモリデータベースで提供するいくつかの利点を見てください。 (私はこれについてはわかりません)
  • あなた自身でこれを設定する予定がある場合は、GoCDをTestLoadBalancer(前述)と組み合わせて見てください。
  • 解決しようとしている問題が、十分に大きなプロジェクトで成長しているテストスイートである場合は、論理的にテストスイートを分割して実際にスピードアップすることを積極的に考えてください。長時間実行しているテストスイートの問題は完全には解決できません。
2

のために出荷可能http://www.shippable.com継続的なサービスを利用することができます。

この目的のために作成されています。特定のコンピュータの複数のコアを使用して、または複数のコンピュータで自動ロードバランシングと分散を使用して、テストを並行して実行できます。

これは、選択したテクノロジを使用してドッカーの作成ファイルを生成します。

ドッカーの作成ファイルをダウンロードし、docker-compose upのDockerを使用して実行するだけです。

それだけです。

免責事項:私はTestributorのウェブ開発者です。しかし、私は本当にそれがあなたを助けることができると思う。