问题标签 [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.
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 插件是目前唯一的选择。
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
java - 如何将 GUNIT 与 MAVEN 一起使用?
给定由以下人员生成的 Maven 项目:
cf:http ://www.antlr.org/wiki/display/ANTLR3/Building+ANTLR+Projects+with+Maven
有这样的架构:
通过将 maven-gunit-plugin 添加到 pom :
GUNIT 文件应该在哪里?
更新(已经):
我不是在谈论 Junit 集成(但是,如果这是唯一的方法,我肯定会选择这个)。
java - 将参数传递给 GUnit 中的解析器规则
我在 ANTLR 中有一个带有参数的解析器规则。
如何在 GUnit 中为此编写测试?
我已经成功地为我的 Lexer 规则编写了测试,因为它们没有任何参数。如果我写以下内容,我会得到“java.lang.NoSuchMethodException:mypackage.BlazonParser.tincture()”
除了这个页面,我几乎找不到关于 GUnit 的文档,但它没有涵盖这一点。
antlr - antlr.gunit.Interp 有哪些选项?如何打开其详细选项?
我当然犯了错误,但 antlr 的 gunit 似乎对用户没有选择。
特别是,我想打开详细选项,否则当错误发生时它告诉我很少。
你知道如何打开它的详细/调试选项吗?
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 块上方,解决了这个问题。
antlr3 - G 单元测试给出 NullPointerException
我第一次使用 G Unit 来测试 Antlr3 语法,但是在运行测试时,我得到了 NullPointerException。
只有在语法规则的动作部分有方法调用时才会出现异常。
例子:
在调试时,我在以下位置得到 NullPointerException:
obj.identStmt($name.text, this.currentLine, this.currentPos);
我想知道是否可以为这种情况编写 G 单元测试用例,如果可以,那么我做错了什么以及做错了什么。
提前致谢。
unit-testing - 模拟正在单元测试的服务类中的方法
我有一个服务类,它有两种方法(一种是公共的,另一种是受保护的)。我正在尝试对我的代码进行单元测试。下面是代码片段 MyServiceClass.groovy
在上面的单元测试代码中,我想模拟 myMethod1() 调用的 myMethod2() 返回结果,即这两个方法都在同一个单元测试的服务类中。如何模拟它并完成工作?
antlr3 - 决策可以使用多种选择匹配输入,例如“{'A'..'Z', '_', 'a'..'z'}”:1、3
我是这个 antlr 3.5 的新手。我知道在 ant;r 4.0 而不是 3.5 中接受左递归,我的语法收到模棱两可的错误警告。我只是在使用这个语法验证我的电子邮件,有人可以修复这个语法吗
c++ - 异常后清理 Google c++ 测试框架
我正在使用 google 单元测试框架(fixtures)使用 C++ 单元测试,测试后清理对我来说非常重要。但是如果发生异常,可执行文件会崩溃并且清理永远不会发生。即使出现异常,有没有办法强制清理?