3

いくつかのユニットテスト用に作成したクラスがあります。TestCaseの接尾辞を付けてテストしていたクラスと一致するようにクラスの名前を変更するまで、すべてが順調に進んでいました。Eclipseでテストケースを実行しようとするたびに、「このタイプの入力構成はありません」というメッセージが表示されます。

次に、クラスの名前に30文字の長さの制限があることを誰かが提案しました。クラス名を見てみると、32文字でした。次に、最後から2文字を削除して再試行すると、すべてが機能しました。私はそれらを元に戻しました、そしてそれは機能しなくなりました。

これについての説明はありますか?

編集:

いくつかのコメントに応えて。これは、Windows XP、JUnit4.4を使用するGalileoです。

編集2:

すみません。私は間違っていたと思います。このパターンは、JUnit/Eclipseが私のクラス名がTestCaseであることを好まないようです。TestCaseの部分を取り除くとすぐに、それは機能します。それは非常に長いストリング、短いストリング、そしてその間のすべてで動作します。名前はABCTestCaseのようなものにすることができますが、何らかの理由でTestCaseにすることはできません。

4

4 に答える 4

1

デフォルトでは、JUnitランナーは* Testファイルを検索するように設定されていると思います。そのため、TestCaseは除外されます。人々はしばしば*TestCaseをそれ自身のテストなしで基本クラスとして使用します。それがあなたが遭遇しているものであるかどうかわからない。もしそうなら、それはランナーで構成可能です。

于 2009-09-22T14:36:56.457 に答える
1

TestCaseを拡張していたため、JUnitランナーはまだバージョン3であると見なされていたことがわかりました。バージョン4を使用するように指示しても。

于 2009-12-30T21:07:39.743 に答える
0

[実行]->[実行...]で実行構成を確認します。テストには構成があります。「テストクラス」フィールドをチェックします。

于 2009-09-21T10:59:30.663 に答える
0

これが何らかのOSの長さの制限に関連しているのかどうかはわかりませんが、次のことに関連しています。

  • クラスの名前に基づいてハードコーディングされたパラメータ化。
  • またはソースフォルダに問題があります。
    実際、あなたのメッセージは次のようになります。

代替テキスト

QuickTipから:JUnit:起動構成の入力タイプが存在しません

テストケースの実行中にEclipseIDEで上記のエラーメッセージが表示される場合は、「Eclipseソースフォルダー」定義の一部としてテストクラスがあることを確認してください。

最も簡単な方法。フォルダを右クリック–> ビルドパス–>ソースフォルダとして使用


長さの制限の問題がある可能性があります(「ファイルの長さの制限を下回る」ためにリファクタリングが行われているプロジェクトがいくつかあります(org.eclipse.jdt.core.tests.performance)。

しかし、 Windowsの長さ制限を考えると、これは奇妙なことです。

  • 関数の最大コマンドライン長32767文字。CreateProcessこの制限は、UNICODE_STRING構造に起因します。CreateProcessはプロセスを作成するためのコア関数であるため、Win32と直接通信している場合は、それが心配する必要がある唯一の制限です。ただし、他の方法でCreateProcessに到達している場合は、移動するパスに他の制限がある可能性があります。
  • CMD.EXEによって課される8192文字のコマンドラインの長さの制限。
  • 関数INTERNET_MAX_URL_LENGTHによって課される(約2048)コマンドラインの長さ制限による2048の長さ。(Windows 95で実行している場合、制限はのみです。)ShellExecute/ExMAX_PATH
  • 環境の最大サイズの32767文字(すべての変数名とすべての値を含む)

たぶん、の全長がjavac commandこれらの制限の1つを超えており、それらのJUnit Javaクラスの1つをコンパイルできません。つまり、実行できなくなります(上記のエラーメッセージがトリガーされます)。

于 2009-09-21T10:49:34.583 に答える