タグ付けされた質問 「continuous-integration」

ソフトウェアエンジニアリングでは、継続的インテグレーション(CI)により、ソフトウェア製品全体の継続的な構築と自動テストが頻繁に実行されます。少なくとも1日に1回、多くの場合1日に数回、時にはバージョン管理システムにチェックインするたびに頻繁に。

2
Googleスケールでソースからコードベース全体を構築するにはどうすればよいですか?
最初の答え古い、最近アクティブに質問にリンクされている動画、Googleのリポジトリがどのように行われるかについて語っています。 言及された興味深いことの1つは、バイナリに依存することなく、すべてがソースからビルドされるという事実です。これは、依存関係が古くなって他のプロジェクトでまだ使用されているという問題を回避するのに役立ちます。 技術的にどのように可能ですか?私の会社で同じことを試してみると、会社のコードベースの規模とGoogleのコードベースの規模の大きなギャップを考慮しても、2つの理由で不可能です。 IDE(Visual Studio)は、たとえば50のプロジェクトを含む小さなソリューションでさえ大きな影響を受けるため、すぐに応答しなくなります。 静的分析は、コードベース全体のサイズによって処理されます。たとえば、コードメトリックスまたはコードコントラクトの静的チェックはほとんど不可能です(コードコントラクトはおそらく数日または数週間かかります)。 継続的インテグレーションでは、コンパイルにも非常に時間がかかり、多くの依存関係を持つプロジェクトが変更されるとすぐにサーバーがクランチされ、プロジェクトの大きなツリーを再コンパイルする必要があります。 中小企業はこれらの問題をどのようにして回避し、次のことができるのでしょうか。 パフォーマンスの低下に影響されずにIDEを使用します。 変更の結果、大量のコードベースを再コンパイルする必要がある場合でも、サーバーをクランチせずにコミットするたびにコードをコンパイルしますか?

2
データベースとCIサーバー
私はCIサーバー(Hudson)を使用していますが、これは陽気にビルド、単体テストを実行、開発環境にデプロイしますが、統合テストを実行したいと思います。 統合テストはデータベースにヒットし、そのデータベースは問題のテストに関連するデータを含むように常に変更されます。しかし、これは問題を引き起こします-データベースが1つのテストのデータでスプラットされていないことを確認し、最初のテストセットが完了する前に、そのデータが2番目のプロジェクトによって上書きされることを確認するにはどうすればよいですか? 私は現在「希望」方法を使用していますが、現時点ではそれほどうまく機能していませんが、CIで設定されている統合テストの数が少ないという事実が主な原因です。 私が見ると、次のオプションがあります。 ローカルの(メモリ内の)テストデータベースインメモリのデータベースがOracleのトリガーやパッケージなどのすべての恐ろしさを処理できるかどうかはわかりませんが、テスト中に価値がないと感じるものはありません。 CIエグゼキューターローカルデータベースこれをセットアップして最新の状態に保つには、かなりの作業が必要になりますが、オプションとしてはまともです(ほとんどの作業は、現在のCIデータベースを最新に保つために既に行われています)。 単一の「統合テスト」エグゼキュータ実装するのが最も簡単なようですが、統合テストがかなり遅れることがあります。 データベース(またはテーブルのセット)のロック 私はいくつかの方法を逃したと確信しています(それらを追加してください)。CIサーバーでデータベースベースの統合テストをどのように実行しますか?どのような問題があり、どのような方法をお勧めしますか?(注:私はHudsonを使用していますが、CIサーバーの回答を受け入れて満足しています。詳細がそうでなくても、確実に移植可能なアイデアです)。 乾杯、 MLK

5
継続的な統合-毎回デバッグとリリースをビルドしますか?
各プロジェクトのデバッグおよびリリースバージョンをビルドするために継続的インテグレーションサーバーを設定するときの標準的な方法ですか?ほとんどの場合、開発者はデバッグモードのプロジェクト構成セットを有効にしてコードを記述し、異なるライブラリパス構成、コンパイラー定義、またはデバッグ/リリース間で異なるように構成された他の項目があり、それらが異なる動作をする可能性があります。 各プロジェクトのデバッグとリリースの両方をビルドするようにCIサーバーを構成しましたが、考えすぎているのではないかと思います。私の仮定は、迅速なフィードバックを得ることができる限りこれを行うことであり、それが発生したら、おそらくリリースを夜間ビルドにプッシュします。これにアプローチするための「標準的な」方法はありますか?

2
HTMLマークアップ用のユニットテストフレームワークはありますか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ソフトウェアエンジニアリングスタック交換のトピックになるようにします。 5年前休業。 私はウェブデザインショップで働いています。私たちのワークフローは2つの部分に分かれています。フロントエンドプログラマーがサイトデザインの静的なhtmlおよびcssテンプレートを作成し、バックエンドプログラマーがテンプレートをCMSに結び付けます。 私たちのサイトには一連の共通機能があり、この機能のテストに使用できる単体テストフレームワークがあるかどうか疑問に思っています。 たとえば、共通の機能ガイドラインの1 つでは、PDFへのすべてのリンクを新しいウィンドウで開く必要があると規定されています。このようなユニットテストを書きたいのですが if(a.class = 'pdf_link') assert(target='_blank) ウィキペディアの単体テストフレームワークのリストには、この比較的単純な機能(文字列をテンプレートに対してチェックする)を網羅するものは何もないようで、大量のbashスクリプトを作成してCIサーバーに結び付けることに傾倒しています。 しかし、これを行うより良い方法はありますか?

2
単体テストのライブラリとツールを評価するときに何を探す必要がありますか?
この投稿を改善してみませんか?この質問に対する詳細な回答を提供してください。これには、引用や、回答が正しい理由の説明が含まれます。詳細が不十分な回答は編集または削除される場合があります。 私はすぐにプロジェクトを開始するための新しい単体テストツールを選択しています。それらはたくさんあります! 私が持っている基本的な要件は、少なくともWindowsとLinuxでテストを実行でき、C ++ / C ++ 03互換であり、テストを並行して実行できることです(たとえば、マルチコアプロセッサを利用するため)。コマンドラインから実行することができます。しかし、これらはかなり広い要件であり、分野を絞り込んでいません。 それを試すために、さまざまなタイプの実装の潜在的な落とし穴と落とし穴を調べています。たとえば、Pythonなどの高レベル言語で単体テストエンジンを使用したい場合でも、C単体テストのような形式の出力を生成できますか?ここでの私の主な目的は、C ++とPythonの両方の結果テストに同じストレージツールとレポートツールを使用することです。 また、テストを実行するために特定のエンジンが必要なのか、それとも継続的インテグレーションエンジン(buildbot)に統合するのに十分なのかについても考えています。 上記の2つの懸念は有効ですか?単体テストエンジンを評価するとき、他に何を心配する必要がありますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.