9

アリのターゲットに名前を付けるためのベスト プラクティスは何ですか?

たとえば、ターゲットの「テスト」は何を実行すると予想されますか? すべての単体テスト?すべての機能テスト?両方?

さまざまな種類のテスト (ユニット/機能/すべて) を実行するために使用される標準的な名前は何ですか? J2SE でソフトウェアをデプロイするためのターゲット名の標準はありますか? J2EEで?

私のプロジェクトでは、junit、Swing アプリケーション、および J2EE アプリケーションを含む Java プロジェクトに ant を使用しています。

4

7 に答える 7

15

このページの「命名規則」セクションを参照してください: Ant スタイルの要素

次のターゲットは、多くのビルドに共通です。既知のターゲット名の動作を変更することは常に避けてください。これらすべてを 1 つのプロジェクトに実装する必要はありません。

all               Build and test everything; create a distribution, optionally install. 
clean             Delete all generated files and directories. 
deploy            Deploy the code, usually to a remote server. 
dist              Produce the distributables. 
distclean         Clean up the distribution files only. 
docs              Generate all documentation. 
init              Initialize the build: create directories, call <tstamp> and other common actions. 
install           Perform a local installation. 
javadocs          Generate the Javadoc pages. 
printerdocs       Generate printable documents. 
test              Run the unit tests. 
uninstall         Remove a local installation. 

このページには、その他の適切なガイドラインも記載されています。

于 2011-09-23T09:48:15.057 に答える
6

私のJavaプロジェクトでは、Mavenのデフォルトライフサイクルで定義された名前を基礎として使用しています。他のプロジェクトでは、 GNU autoconf 標準ターゲットも使用しました。

于 2009-05-09T17:06:10.980 に答える
3

かなり広く使用されている標準が1つあります。-文字で始まるターゲット名はコマンドラインから呼び出すことができないため、直接実行することを意図していないものでなければなりません。これは、非表示のターゲットと呼ばれることもあります。

于 2008-12-05T09:55:47.103 に答える
2

他の単一タスクへの依存を使用する短くて簡潔なターゲット名で良い経験をしました。私の知る限り、一般的な標準セットは

  • 初期化
  • 掃除
  • コンパイル
  • 距離
  • テスト
  • 報告

(リンクが見つからないけど)

これは私たちにとって非常にうまく機能します。

テスト タイプを区別する必要があるときは、テスト タイプを区別するために「test.data」と「test.nondata」という名前を付けました。それぞれのテスト タイプは「test」タスクによって依存されます。別のユーザーが提案したように、「Java メソッドの命名規則」を使用する必要があるかもしれませんが、それは問題ではありません。

ローカル マシンで ant スクリプトを手動で実行している場合 (ビルド スクリプトが壊れているかどうかをテストするために実行します)、次のように入力するだけでよい場合に便利です。

ant dist
ant test report

それ以外の

ant compile create.distribution
ant test.data test.nondata report.junit.generate report .....
于 2008-12-05T05:13:42.743 に答える
2

それらが理解しやすく、プロジェクト全体で一貫している限り、名前を付けるのはあなた次第です。通常、単純で短い動詞が標準であり、ターゲットは論理的に分割する必要があります。

Matt B が提案したルートに進み、テスト ターゲットにタイプ別に名前を付けることができます。

  • テストユニット
  • テスト機能
  • すべてのテスト

または、たとえば Junit、Selenium、および Webtest の機能テストがある場合は、ツールごとに名前を付けることができます。

  • test-junit
  • テストセレン
  • テスト-ウェブテスト
  • すべてのテスト

プロジェクトを構築するすべてのユーザーに公開するターゲットに description 属性を使用すると、ユーザーは を実行して、ant -p使用可能なターゲットを一覧表示し、必要なターゲットを選択できます。ここでの役立つ説明は、実際にターゲットに名前が付けられていることよりも、おそらくユーザーにとってより重要で価値があります。

Antマニュアルから:

オプションの description 属性を使用して、このターゲットの 1 行の説明を提供できます。これは、-projecthelp コマンドライン オプションによって出力されます。このような説明のないターゲットは内部と見なされ、-verbose または -debug オプションが使用されない限り、リストされません。

于 2008-12-04T22:00:05.037 に答える
1

これは完全に個人的な好みのポイントだと思いますが、私は使用します

  • test- 単体テスト用
  • test-integration- 統合テスト用
  • dbtest・データベース試験用(上記項目に含まれる場合)
  • test-all上記のすべてを実行するには

testまた、私はor の複数形の使用にとらわれず、testsおそらく別のプロジェクトで両方を行ったことがあります。

于 2008-12-04T21:32:47.850 に答える
1

Ant ターゲットの命名規則は、Java メソッドの命名規則と非常によく似ている必要があります。つまり、ターゲットが何をするかを簡単に説明する必要があります。

以下は、メソッド命名に関する Sun 標準からの抜粋です。

メソッドの命名

メソッド名は任意の正当な識別子にすることができますが、コード規則によってメソッド名が制限されます。慣例により、メソッド名は小文字の動詞、または小文字の動詞で始まり、その後に形容詞、名詞などが続く複数語の名前にする必要があります。複数語の名前では、2 番目以降の各単語の最初の文字大文字にする必要があります。ここではいくつかの例を示します。

run
runFast
getBackground
getFinalData
compareTo
setX
isEmpty

おそらく最大の違いは、ant ターゲットのスタイルです。これはすべて小文字で、単語をダッシュ​​で区切る必要があります。

たとえば、次の目標は私にとって適切だと思われます。

  • run-all-tests
  • build
  • clean
  • test-and-release
  • deploy
  • run-code-coverage-metrics

最後に、メソッドに名前を付けるときに使用するのと同じ適切な判断を使用するようにしてください。目標が明確で、説明的で、理解しやすい場合は、良好な状態です。

このトピックの詳細については、Ant wikiの The Elements of Ant Styleを参照してください。

于 2008-12-04T22:11:28.443 に答える