2016-04-17 3 views
3

Если я хочу, чтобы запустить все тесты в пределах модуля, я просто написать:Инициировать Rascal тесты из оболочки для целей CI

> import Example; 
> :test 

и все функции теста BOOL запуска. Тем не менее, я хочу запустить их, используя Rascal .jar для целей CI. Есть ли какой-либо флаг, который я могу использовать? Например:

$ rascal.jar TestsModule --test 

Или любое альтернативное решение, чтобы я мог запускать тесты мошенников для целей CI?

ответ

3

В настоящий момент еще не из командной строки. Для (почти законченного) компилятора мы имеем --rascalTests <modules>, но пока это не решит вашу проблему.

Если ваш CI поддерживает тесты стиля JUnit, мы добавили совместимый с JUnit уровень вокруг тестов мошенничества. Например, this class выполняет все тесты в модулях Rascal в пакете lang::rascal::tests::basic.

Другой способ заставить его работать с командами трубопровода в оболочку мошенника?

$ 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 
$ 
+1

'-rascalTests' будет потрясающим. На данный момент я сделал небольшую статическую функцию анализа кода, которая выполняется на крюке предварительной фиксации и генерирует модуль мошенничества, который вызывает все тесты и собирает их результат. Однако я рассмотрю решение класса Java, которое вы указали. Благодаря! –

+0

, если вы хотите, вы можете попробовать добавить его в проект [rascal-shell project] (https://github.com/usethesource/rascal-shell/) и сделать запрос на растяжение, это будет немного озадачивать, так что вы можете начните с запроса на растяжение и получите некоторую обратную связь на этом пути. –

+0

Я сделал довольно простой взлом ([BuildTests.rsc] (https://github.com/BulgariaPHP/glagol-dsl/blob/master/src/BuildTests.rsc)), я не уверен, что он достаточно общий для REPL. По крайней мере, это помогает мне, и это достаточно хорошо, чтобы работать с моими сборками CI. –