12

いくつかの質問:

1.) リリース コードを単体テストしますか?

2.) もしそうなら、テスト自体が本番環境に存在するように、それらの単体テストをそのまま残しますか?

#1 の値はわかりますが、本番環境で NUnit アセンブリなどへの依存関係を作成するのは「良い習慣」ですか?

あなたの考えを教えてください。

4

5 に答える 5

18
  1. 絶対。ビルドがユニットテストスイートに合格すると、タグが付けられ、本番環境の候補になります
  2. いいえ。デプロイメントには、テストもサポートライブラリ(単体テストライブラリ、モックなど)も含まれません。

上記は私の一般的なルールです(私は通常、技術者以外のユーザーに展開しています)。ただし、例外があります。これは、約130のテストスクリプトで単体テストされるプログラミングユーティリティです。テストスクリプトは例を兼ねているため、本番リリースと一緒に展開し、その結果、既存のドキュメントを強化します。

オープンソースコードを使用してテストを展開することは、間違いなく価値があります。これにより、パッチを試して、変更し、送信すると同時に、正常に合格したテストを実行して、元のアーティファクトをリリースすることができます。

于 2009-08-14T16:34:07.850 に答える
8

はい、はい。アプリケーションの動作はリリースビルドとデバッグビルドで異なる可能性があるため、リリースプロセスの一部として、リリースビルドはすべての単体テストに合格する必要があります。

于 2009-08-14T16:30:40.603 に答える
2
  1. はい、もちろん!単体テストは、すべてのビルド構成で実行されます。

  2. 単体テストは常に無傷ですが、これは出荷されたアセンブリがテストに関連するものに依存していることを意味するものではありません。テストは常に(同じビルド環境で)並列アセンブリで記述され、その後、本番アセンブリをテストします。並列アセンブリにはテストのみが含まれているため、出荷されていません。

于 2009-08-14T16:36:40.683 に答える
2
  1. はい、同様にキャッチする必要がある古典的な「副作用を伴うアサート」エラーを覚えておいてください。ただし、これはデバッグビルドほど頻繁に実行する必要はなく、毎日完全なテストを実行する必要があります。
  2. 通常、単体テストは異なる翻訳単位と異なるプロジェクトで行われるため、メインプロジェクトのリリースビルドはそれらにまったく影響しません。ただし、単体テストがテストされたコードと同じ変換単位にある場合は、条件付きコンパイルを使用してそれらをリリースから除外できます。
于 2009-08-16T00:00:30.347 に答える