プログラムを作成するとき、最初にテストを作成します。 頻繁に手動でテストを実行するのは面倒です。
通常のコード開発シナリオについて説明します。
テストは「グリーン」であり、リファクタリングを開始しましたが、これはシンプルで安全だと思われます。 その後、テストを実行し、何かが壊れていることを確認しました。 しかしその前に、あなたはすでに10個の小さな変更を行っており、どれがプログラムを壊したのか分かりません。 解決策は、テストをより頻繁に(変更ごとに)実行することでしたが、それを忘れていました。
私が望んでいるのは、コードを変更するたびに開発環境(IDE)でテストを自動的に実行できるようにすることです。 この方法は、小さな変更を10回行うと、IDEがテストを10回実行することを意味します。 そして、あなたが単純だと思うが、実際にはプログラムを破壊する何かをしている瞬間に、IDEはあなたに間違いを教えてくれます。 Ctrl + z(キャンセル)を押すだけで、作業コードを取得できます。
必要なのは、コードを保存するたびにIDEでテストを実行することです。 Ctrl + sを押した後の私の忍耐はたった2秒なので、これを行うには、テストを迅速に行う必要があります。 持続するものは何よりも私を困らせます。 テストスイートの実行が遅い場合は、リファクタリングします。
この手法は、素早い単体テストにのみ適しています 。 Ctrl + sを使用して、スクリプトテストをイベントとして実行しません。
Eclipseでこれを行う方法は知っていますが、他のIDEを使用している人でも同様のことができるかもしれません。 ダウンロード可能なプロジェクトをすでに準備して作成しています。
これが一連のアクションです。
- プロジェクトを作成します 。 Eclipseには、保存するたびにバックグラウンドでコンパイルを実行するなどの便利な機能があります。
- 以下に示すように、テストを実行するjunitのコードを作成します : AllTests.java
import junit.framework.TestSuite; import junit.textui.TestRunner; パブリッククラスAllTests { public static void main(String [] args){ TestSuiteスイート=新しいTestSuite(); suite.addTestSuite(GreeterTest.class); TestRunner.run(スイート); } }
- コンパイルされたEclipseファイルのフォルダーからテストを実行するantファイルを作成します。 このファイルにはコンパイルの指示はありません-eclipseはこれを行います:
build.xml
<プロジェクト> <ターゲット名= "eclipse-test-runner"> <java classname = "AllTests" classpath = "bin:libs / junit.jar"> </ java> </ target> </ project>
- 日食を指定しますか? u各コンパイル後にantターゲットを実行します。 これを行うには、新しいビルダーを作成します。
- メニュー項目[プロジェクト]-> [プロパティ]を選択して、プロジェクトのプロパティを開きます。
- Java Builderの後に新しい「Ant Builder」ビルダーを追加します。Builders-> New ...-> Ant Builder。
- コレクターにきれいな名前を付けます。 また、各タブで次の操作を実行します(日食にはバグがあると考えられます。タブのデータを変更するたびに[適用]をクリックする必要があります)。
- Main :ビルドファイルとベースディレクトリを選択します(これにより、使用するantファイルが設定されます)。
- ターゲット :クリーン、手動ビルド、自動ビルド(最も重要)後のantターゲットを選択します(これは、各コンパイル後にantターゲットを実行する必要があることを示します)。
- ビルドオプション :「ワーキングセットの指定」フラグを設定し、すべてのソースフォルダーを選択します。 (これにより、このコレクターが呼び出すファイルの変更が決まります。
私たちの場合、これらはファイルへの変更です。)
コレクターの作成(Ant Builder) :
メインタブ:
[ターゲット]タブ:
起動例:(あまり良い品質ではありませんが、解析できます)
または、リポジトリからプロジェクトをダウンロード ( zip )し、それをEclipseにインポートして試してみてください。
成功したテスト...
著者について:MiškoHevery
- ブログ 。 著者による多くの記事は、 Google Testing Blogにあります。
- 著者について
... Googleでアジャイルコーチのインストラクターとして働いており、自動テストの文化をGoogleに教えています。 彼の仕事は、Googleが頻繁にウェブアプリケーションを頻繁にリリースするのを一貫して高品質で支援することです。 これに先立ち、MiscoはAdobe、Sun Microsystems、Intel、およびXeroxに勤務し(完全なリストではありません)、Java、JavaScript、Flex、およびActionScriptでWebアプリケーションを開発するエキスパートになりました。 彼はオープンソースコミュニティに多く関与しており、いくつかのオープンソースプロジェクトを執筆しています。 Test-Driven-Developmentに最近興味を示した結果、 Testability ExplorerとJsTestDriverが実装され、オープンソースコミュニティのテスト文化を変えたいと考えています。
オープンソースプロジェクト:
- http://code.google.com/p/js-test-driver
- http://www.testabilityexplorer.org/
- http://code.google.com/p/classpath-explorer/
- http://code.google.com/p/testability-explorer/
- http://code.google.com/p/google-singleton-detector/
- http://code.google.com/p/flexcalendar/
UPD 1:テストの自動実行を支援するEclipseおよびIntelliJ用の優れたプラグインがあります-Infinitest
更新2:単体テストの概念を説明する記事 を 翻訳し、コメント内のいくつかの質問を軽減します。