問題タブ [gunit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1344 参照

maven-2 - maven-gunit-plugin を使用して JUnit ソースを生成する方法

maven-gunit-pluginを介してgunit (ANTLR 文法ユニット テスト ツール)を実行するように Maven を構成しました。ただし、gunit には 2 つの異なるモードがあります。最初のモードでは、gunit がインタープリターとして機能し、*.gunit (または *.testsuite) ファイルを読み取って解釈し、結果を表示します。次のように構成できます。

2 番目のモードでは、JUnit で実行できるソース コードが gunit によって生成されます。インタープリターとして機能する代わりに、maven-gunit-plugin に JUnit ソースを生成するように指示するにはどうすればよいですか?

いくつかのメモ:

  • テスト フェーズを「generate-test-sources」に変更して、maven プラグインを正しい時間に実行することができます。
  • maven-gunit-plugin に関する有用なドキュメントが見つかりませんでした
  • exec-maven-pluginを使用して、特定のコマンド ライン オプションで gunit を実行する人を見てきましたが、私はそれを行うつもりはありません。

編集/解決:

さまざまな回答を読んだ後、maven-gunit-plugin を含む ANTLR ソース コードをダウンロードしました。プラグインは、 junit 生成をサポートしていません。現在、gunit-maven-plugin の codehaus スナップショットと exec プラグインが唯一のオプションであることが判明しました。

0 投票する
2 に答える
204 参照

junit - gunit ファイルを翻訳して作成した Antlr 生成の junit ファイルの使用方法

Antlr で複数の戻り値の単体テストを作成しようとしています。私はgunitを使って定期的に単体テストを行っています。ただし、 http: //www.antlr.org/wiki/display/ANTLR3/gUnit+-+Grammar+Unit+Testing の指示に従って生成される junit Testgrammar.java ファイルをどうするかはよくわかりません。

私は実行してみました:

java -cp "./antlr.jar" Testgrammar.java

しかし、次のエラーが表示されます。

スレッド「メイン」の例外 java.lang.NoClassDefFoundError: Testgrammar/java

0 投票する
1 に答える
825 参照

java - GUNITをMAVENで使用するにはどうすればよいですか?

によって生成されたMavenプロジェクトを考えると:

cf:http ://www.antlr.org/wiki/display/ANTLR3/Building+ANTLR+Projects+with+Maven

そのようなアーキテクチャを持っている:

maven-gunit-pluginをpomに追加することによって:

GUNITファイルはどこにあるべきですか?

更新(すでに)

私はJunitの統合について話しているのではありません(しかし、それが唯一の方法であるなら、私はきっとこれを選びます)。

0 投票する
1 に答える
224 参照

java - GUnitのパーサールールにパラメーターを渡す

パラメーターを取る ANTLR のパーサー ルールがあります。

GUnitでこれのテストを書くにはどうすればよいですか?

パラメータがないため、レクサールールのテストを正常に作成できました。次のように書くと、「java.lang.NoSuchMethodException: mypackage.BlazonParser.tincture()」が発生します。

このページ以外に GUnit に関するドキュメントはほとんどありませんが、これについては触れていません。

0 投票する
1 に答える
220 参照

antlr - antlr.gunit.Interpのオプションは何ですか?その冗長オプションをオンにする方法は?

私は確かに間違っていますが、antlrのgunitにはユーザーの選択肢がないようです。

特に、冗長オプションをオンにしたいと思います。そうしないと、エラーが発生したときにほとんどわかりません。
詳細/デバッグオプションをオンにする方法を知っていますか?

0 投票する
1 に答える
312 参照

antlr - シンプルな Antlr3 トークンの解析

Antlr 文法に関する質問の量にいくらか安心していますが (このヤクの形をしたものを剃ろうとしているのは私だけではありません)、私の問題に役立つ質問/回答は見つかりませんでした。

Token/Parser lexer が混在する Antlr3.3 を使用しています。

gUnit を使用して文法を証明し、いくつかの jUnit テストを行っています。ここから楽しみが始まります。

解析したい単純な構成ファイルがあります。

「識別子」(この例では foobar) の解析に問題があります: 許可したい有効な名前は次のとおりです:

などであるため、有効な名前には次の文字を使用できます。'a..z'|'A..Z', '0..9' '_' and '-'

私がたどり着いた文法はこれです(これは完全な文法ではなく、この質問に関連する部分だけであることに注意してください):

および対応する gUnit テスト

gUnit テストの実行は、「5foobar」に対してのみ失敗します。難しいものをなんとか解析できましたが、識別子を解析するという一見単純なタスクに打ちのめされました。

誰かが私が間違っている場所を指摘できますか? 貪欲にならずにマッチングするにはどうすればよいですか?

よろしくお願いします。

- アップデート -

Bartsの回答に従って、文法を次のように変更しました。

IDENTIFIER : ('0'..'9'| 'a'..'z'|'A'..'Z' | '_'|'-') ('_'|'-'|'a'..'z'|'A'..'Z'|'0'..'9')* ;

これにより、失敗したgUnitテストが修正されましたが、「ポート」パラメーターをテストする関連のないjUnitテストが壊れました。次の文法は、上記の構成スニペットの「port=8080」要素を扱います。

私が得るメッセージは次のとおりです。

mismatched input '8080' expecting NUMBER

NUMBER は次のように定義されます。NUMBER : ('0'..'9')+ ;

IDENTIFIER ブロックの上に NUMBER のルールを移動して、この問題を修正しました。

0 投票する
2 に答える
247 参照

antlr3 - 決定は、複数の選択肢を使用して、「{'A'..'Z', '_', 'a'..'z'}」などの入力と一致させることができます: 1、3

私はこの antlr 3.5 の初心者です。左再帰が ant;r 4.0 では受け入れられ、3.5 では受け入れられないことを理解しました。文法に対してあいまいなエラー警告が表示されます。この文法を使用してメールを確認しているだけです。誰かがこの文法を修正できますか

0 投票する
1 に答える
1913 参照

c++ - 例外後のクリーンアップ Google c++ テスト フレームワーク

私は Google 単体テスト フレームワーク (フィクスチャ) を使用して C++ 単体テストを使用しています。テスト後のクリーンアップは私にとって非常に重要です。ただし、例外が発生した場合、実行可能ファイルはクラッシュし、クリーンアップは行われません。例外が発生した場合でもクリーンアップを強制する方法はありますか?