出于 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
$
如果我想在一个模块内启动所有测试,我只需写:
> 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
$