私のチームは、クライアント サーバー セットアップで使用されるデスクトップ アプリケーション (混合 C++/Tcl) を開発しています。現在は Windows 専用ですが、すぐに Linux に移植する必要があります。CruiseControl.NET は毎晩 SVN のソース コードからビルドし、NSIS インストーラーにパッケージ化しますが、実行する自動テストはありません。
単体テストを追加することはほとんど不可能ですが、アプリケーションの統合テストは簡単です。これは、アプリケーションが既にスクリプト ベースでかなりの部分を占めているためです。
主なタスクは、アプリを 3 台の PC にインストールし、構成 (いくつかのファイルをコピーすることを含む)、実行、クラッシュの可能性を監視、統合テストが完了するまで待機、概要を収集、電子メールを送信することです。一連のカスタム PowerShell スクリプトを使用して実行できますが、
- 将来的には、より多くの機能を追加し、より多くのテストを行いたいと考えており、以前は単純なスクリプトであったものはすぐに爆発します (いつものように)。そのため、カスタム スクリプトを最小限に抑えたいと考えています。また、何かスクリプトを作成する必要がある場合は、bash/cygwin を好みます。 (私は Python や Ruby に詳しくありません)。
- 現在の進行状況を報告し、何かが失敗した場合はログを表示する Web ダッシュボードが必要です
- テスト中のアプリを監視し、ハングまたはクラッシュした場合に報告するスーパーバイザーが必要です
- Linuxでもテストする必要があります
- 理想的には、PC 間でいくつかのテスト手順を調整したいと考えています (たとえば、PC1 でテスト X を実行し、PC2 でテスト Y を並行して実行し、両方が終了するまで待ってから、PC2 で何もクラッシュしないことを監視しながら、PC1 でテスト Z を実行します)。
それで、私はそれを行うのに役立ち、急な学習曲線を持たないCOTSツール/ツールセットを探しています. 理想的には無料ですが、それが本当に優れていて適正な価格設定であれば、私の会社はライセンスを購入するかもしれません。
NSIS インストーラーの準備ができたら、CruiseControl.NET からプロセスをトリガーし、上記のすべてを実行する必要があります。基本的に、少なくともソフトウェアのリモート インストール、カスタム スクリプトの実行、および Web ダッシュボードを許可する必要があります。
どうやら、Chef のような SCCM ツールを使用できるようですが、今のところどちらも Windows サーバーをサポートしておらず、ノードのみをサポートしています。そのためだけに Linux VM をセットアップすることは避けたいと思いますが、他に選択肢がない場合はセットアップできます。また、Chef は少しやり過ぎのようです。1 万台のマシンには適していますが、私は 3 台しか持っていません。将来的には 5 台になるかもしれません。そして、分散テストを組織化する可能性について特に興味があります。
ここ StackOverflow とインターネットでの同様の質問のほとんどは、Web アプリ、Java コンテナー、Maven などに関するものであり、これらのツールを評価するためのツールとプラグインが非常に多くあります。
前もって感謝します。