问题标签 [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 配置为通过maven-gunit-plugin运行gunit(一个 ANTLR 语法单元测试工具)。然而,gunit 有两种不同的模式。第一种模式使 gunit 充当解释器,读取 *.gunit(或 *.testsuite)文件,解释它并显示结果。可以这样配置:

第二种模式使 gunit 生成可以由 JUnit 运行的源代码。如何指示 maven-gunit-plugin 生成 JUnit 源而不是充当解释器?

几点注意事项:

  • 我可以将测试阶段更改为“生成测试源”以使 maven 插件在正确的时间运行。
  • 我在 maven-gunit-plugin 上找不到任何有用的文档
  • 我见过人们使用exec-maven-plugin来运行带有特定命令行选项的 gunit,但我不打算这样做。

编辑/解决方案:

在阅读了各种回复后,我下载了 ANTLR 源代码,其中包括 maven-gunit-plugin。该插件不支持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 中为此编写测试?

我已经成功地为我的 Lexer 规则编写了测试,因为它们没有任何参数。如果我写以下内容,我会得到“java.lang.NoSuchMethodException:mypackage.BlazonParser.tincture()”

除了这个页面,我几乎找不到关于 GUnit 的文档,但它没有涵盖这一点。

0 投票
1 回答
220 浏览

antlr - antlr.gunit.Interp 有哪些选项?如何打开其详细选项?

我当然犯了错误,但 antlr 的 gunit 似乎对用户没有选择。

特别是,我想打开详细选项,否则当错误发生时它告诉我很少。
你知道如何打开它的详细/调试选项吗?

0 投票
1 回答
312 浏览

antlr - 简单的 Antlr3 Token 解析

虽然我对有关 Antlr 语法的大量问题感到有些欣慰(不仅仅是我试图剃掉这个牦牛形状的东西),但我还没有找到一个可以帮助解决我的问题的问题/答案。

我将 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')+ ;

将 NUMBER 的规则移到 IDENTIFIER 块上方,解决了这个问题。

0 投票
1 回答
68 浏览

antlr3 - G 单元测试给出 NullPointerException

我第一次使用 G Unit 来测试 Antlr3 语法,但是在运行测试时,我得到了 NullPointerException。

只有在语法规则的动作部分有方法调用时才会出现异常。

例子:

在调试时,我在以下位置得到 NullPointerException:

obj.identStmt($name.text, this.currentLine, this.currentPos);

我想知道是否可以为这种情况编写 G 单元测试用例,如果可以,那么我做错了什么以及做错了什么。

提前致谢。

0 投票
3 回答
2903 浏览

unit-testing - 模拟正在单元测试的服务类中的方法

我有一个服务类,它有两种方法(一种是公共的,另一种是受保护的)。我正在尝试对我的代码进行单元测试。下面是代码片段 MyServiceClass.groovy

在上面的单元测试代码中,我想模拟 myMethod1() 调用的 myMethod2() 返回结果,即这两个方法都在同一个单元测试的服务类中。如何模拟它并完成工作?

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 单元测试框架(fixtures)使用 C++ 单元测试,测试后清理对我来说非常重要。但是如果发生异常,可执行文件会崩溃并且清理永远不会发生。即使出现异常,有没有办法强制清理?