プロジェクトの非単体テストを管理する方法は?


9

私は自分のプロジェクトにtestsユニットテストではないコードをいくつか持っています。これらは実行することを意図しており、結果は人間が評価する必要があります。これは、物理エンジンを作成していて、開発中に自分が何をしているかを確認する必要があったためです。それでsimulation、テストモジュールでパッケージを作成しました。シミュレーションはユニットテストライブラリを使用しているため、技術的にはユニットテストですが、実際のユニットテストのようにすべてを実行するわけではありません。

すべての単体テストを簡単に実行したいので、これらの特別なテストを単体テストと区別します。機能テストに少し似ていると思います。アプリケーションを機能テスト用に準備しなければならないケースに遭遇したことがありますか?その機能テストの準備(基本的には私のシミュレーション)はプロジェクトのどこに配置し、ユニットテストとどのように区別するのですか?

私はJavaを使用しているため、すべてのメソッドシグネチャをから@Test public void myNamedTest()に変更できpublic static void main(String[] args)ますが、シミュレーションを使用するのは面倒で実用的ではありません。

プロジェクトで使用junitしていgradleます。で特別なテストフォルダを作成するソリューションgradleは大歓迎です。


2
あなたが話しているのは、その場限りのテストを実行できるテストリグだと思います。これらは私が覚えている限り(30年以上)存在します。彼らは通常、ライブラリやその他にアクセスできる別のプロジェクトに座っていますが、好きなように構造化することができます。
ロビーディー

3
ユニット/統合/機能テストという用語は、テストの範囲、つまり何をテストするかを表します。これは、これらのテストの実行方法(たとえば、手動テストと自動テスト)から完全に独立しています。自動受け入れテストと手動単体テスト、およびその間のあらゆるものがあります。したがって、JUnitを使用して手動の機能テストを実行する場合、それはまったく問題ありません。デフォルトで実行されないように、自動テストから何らかの方法でそれらを分離してください。
アモン

回答:


10

新しいバージョンのJunitがテストのカテゴリをサポートしているようです。これらは各テストを分類するのに役立ちます。その後、ビルド自動化を実行すると、カテゴリに基づいてそれらのテストを含めたり除外したりできます。

これらのテストを単体テストに混在させるかどうかは、組織の好みの問題です。個別の「テストリグ」プロジェクトを作成して、通常の単体テストとより専門的な単体テストを分離することができます。

https://dzone.com/articles/closer-look-junit-categories

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.