出于 CI 目的,从 shell 启动 Rascal 测试

Initiate Rascal tests from shell for CI purposes

如果我想在一个模块内启动所有测试,我只需写:

> import Example;
> :test

和所有测试布尔函数 运行。但是,出于 CI 目的,我想使用 Rascal .jar 启动它们。我可以使用任何标志吗?例如:

$ rascal.jar TestsModule --test

或任何替代解决方案,以便我可以 运行 我的 Rascal 测试用于 CI 目的?

目前,还没有从命令行。对于(几乎完成的)编译器后端,我们现在有 --rascalTests <modules> 但现在这不能解决您的问题。

如果您的 CI 支持 JUnit 样式测试,我们已在 rascal 测试周围添加了一个 JUnit 兼容层。例如 this class 运行 lang::rascal::tests::basic 包中的 Rascal 模块中的所有测试。

另一种让它工作的方法是将命令通过管道传递给 rascal-shell?

$ echo -e "import IO;\n println(\"Hello World\");\n:quit\n" | java -jar rascal-shell-unstable.jar
Version: 0.8.0.201604121603
rascal>import IO;
ok
rascal> println("Hello World");
Hello World
ok
rascal>:quit
Quiting REPL
$