{"action":"created","issue":{"url":"https://api.github.com/repos/uqbar-project/wollok/issues/434","labels_url":"https://api.github.com/repos/uqbar-project/wollok/issues/434/labels{/name}","comments_url":"https://api.github.com/repos/uqbar-project/wollok/issues/434/comments","events_url":"https://api.github.com/repos/uqbar-project/wollok/issues/434/events","html_url":"https://github.com/uqbar-project/wollok/issues/434","id":117437082,"number":434,"title":"Generate JSON report as wollok test execution output","user":{"login":"javierfernandes","id":4428120,"avatar_url":"https://avatars.githubusercontent.com/u/4428120?v=3","gravatar_id":"","url":"https://api.github.com/users/javierfernandes","html_url":"https://github.com/javierfernandes","followers_url":"https://api.github.com/users/javierfernandes/followers","following_url":"https://api.github.com/users/javierfernandes/following{/other_user}","gists_url":"https://api.github.com/users/javierfernandes/gists{/gist_id}","starred_url":"https://api.github.com/users/javierfernandes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/javierfernandes/subscriptions","organizations_url":"https://api.github.com/users/javierfernandes/orgs","repos_url":"https://api.github.com/users/javierfernandes/repos","events_url":"https://api.github.com/users/javierfernandes/events{/privacy}","received_events_url":"https://api.github.com/users/javierfernandes/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/uqbar-project/wollok/labels/enhancement","name":"enhancement","color":"84b6eb"},{"url":"https://api.github.com/repos/uqbar-project/wollok/labels/severity:%20Major","name":"severity: Major","color":"fad8c7"}],"state":"open","locked":false,"assignee":{"login":"javierfernandes","id":4428120,"avatar_url":"https://avatars.githubusercontent.com/u/4428120?v=3","gravatar_id":"","url":"https://api.github.com/users/javierfernandes","html_url":"https://github.com/javierfernandes","followers_url":"https://api.github.com/users/javierfernandes/followers","following_url":"https://api.github.com/users/javierfernandes/following{/other_user}","gists_url":"https://api.github.com/users/javierfernandes/gists{/gist_id}","starred_url":"https://api.github.com/users/javierfernandes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/javierfernandes/subscriptions","organizations_url":"https://api.github.com/users/javierfernandes/orgs","repos_url":"https://api.github.com/users/javierfernandes/repos","events_url":"https://api.github.com/users/javierfernandes/events{/privacy}","received_events_url":"https://api.github.com/users/javierfernandes/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/uqbar-project/wollok/milestones/3","html_url":"https://github.com/uqbar-project/wollok/milestones/Wollok%20v1.3%20Confucius","labels_url":"https://api.github.com/repos/uqbar-project/wollok/milestones/3/labels","id":1351818,"number":3,"title":"Wollok v1.3 Confucius","description":"Main focus on: REPL improvements & Autocomplete/Quickfixes/Navigation/Checks of \"messages sends\"\r\n","creator":{"login":"javierfernandes","id":4428120,"avatar_url":"https://avatars.githubusercontent.com/u/4428120?v=3","gravatar_id":"","url":"https://api.github.com/users/javierfernandes","html_url":"https://github.com/javierfernandes","followers_url":"https://api.github.com/users/javierfernandes/followers","following_url":"https://api.github.com/users/javierfernandes/following{/other_user}","gists_url":"https://api.github.com/users/javierfernandes/gists{/gist_id}","starred_url":"https://api.github.com/users/javierfernandes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/javierfernandes/subscriptions","organizations_url":"https://api.github.com/users/javierfernandes/orgs","repos_url":"https://api.github.com/users/javierfernandes/repos","events_url":"https://api.github.com/users/javierfernandes/events{/privacy}","received_events_url":"https://api.github.com/users/javierfernandes/received_events","type":"User","site_admin":false},"open_issues":36,"closed_issues":48,"state":"open","created_at":"2015-10-12T21:28:43Z","updated_at":"2015-11-17T19:58:57Z","due_on":"2015-12-14T03:00:00Z","closed_at":null},"comments":5,"created_at":"2015-11-17T19:58:57Z","updated_at":"2015-11-17T20:39:00Z","closed_at":null,"body":"This is needed for mumuki integration"},"comment":{"url":"https://api.github.com/repos/uqbar-project/wollok/issues/comments/157499549","html_url":"https://github.com/uqbar-project/wollok/issues/434#issuecomment-157499549","issue_url":"https://api.github.com/repos/uqbar-project/wollok/issues/434","id":157499549,"user":{"login":"javierfernandes","id":4428120,"avatar_url":"https://avatars.githubusercontent.com/u/4428120?v=3","gravatar_id":"","url":"https://api.github.com/users/javierfernandes","html_url":"https://github.com/javierfernandes","followers_url":"https://api.github.com/users/javierfernandes/followers","following_url":"https://api.github.com/users/javierfernandes/following{/other_user}","gists_url":"https://api.github.com/users/javierfernandes/gists{/gist_id}","starred_url":"https://api.github.com/users/javierfernandes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/javierfernandes/subscriptions","organizations_url":"https://api.github.com/users/javierfernandes/orgs","repos_url":"https://api.github.com/users/javierfernandes/repos","events_url":"https://api.github.com/users/javierfernandes/events{/privacy}","received_events_url":"https://api.github.com/users/javierfernandes/received_events","type":"User","site_admin":false},"created_at":"2015-11-17T20:39:00Z","updated_at":"2015-11-17T20:39:00Z","body":"Yes, I'm already doing that\r\n\r\nSample draft\r\n\r\n```json\r\n{\r\n\t\"version\" : \"1.3.0\",\r\n\t\"tests\" : [\r\n{\r\n\t\"name\" : \"exported test from REPL session\",\r\n\t\"state\" : \"passed\"\r\n}\r\n\t\t]\r\n}\r\n\r\n```\r\n(sorry not right indentation)\r\n\r\nSample **failure** (expectation failed)\r\n```json\r\n{\r\n\t\"version\" : \"1.3.0\",\r\n\t\"tests\" : [\r\n{\r\n\t\t\"name\" : \"exported test from REPL session\",\r\n\t\t\"state\" : \"failed\"\r\n\t\t\"error\" : {\r\n\t\t\t\"message\" : \"Expected [13] but found [10]\",\r\n\t\t\t\"file\" : \"file:/Users/jfernandes/dev/data/repo/wollok-dev/wollok-tests/src/wollok/examples/guia1/ej1_pepita.wtest\",\r\n\t\t\t\"lineNumber\" : \"15\",\r\n\t\t\t\"stackTrace\" : \"wollok.lib.ValueWasNotEqualsException: Expected [13] but found [10]\r\n\t\t\t\tat wollok.lib.AssertionException.valueNotWasEquals(AssertionException.java:67)\r\n\t\t\t\tat wollok.lib.AssertObject.assertEquals(AssertObject.java:64)\r\n\t\t\t\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n\t\t\t\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)\r\n\t\t\t\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n\t\t\t\tat java.lang.reflect.Method.invoke(Method.java:606)\r\n\t\t\t\tat org.uqbar.project.wollok.ui.utils.XTendUtilExtensions.invokeConvertingArgs(XTendUtilExtensions.java:350)\r\n\t\t\t\tat org.uqbar.project.wollok.interpreter.nativeobj.AbstractWollokDeclarativeNativeObject.call(AbstractWollokDeclarativeNativeObject.java:77)\r\n\t\t\t\tat org.uqbar.project.wollok.interpreter.AbstractWollokCallable._invokeNative(AbstractWollokCallable.java:129)\r\n\t\t\t\tat org.uqbar.project.wollok.interpreter.AbstractWollokCallable.invokeNative(AbstractWollokCallable.java:187)\r\n\t\t\t\tat org.uqbar.project.wollok.interpreter.AbstractWollokCallable$1.apply(AbstractWollokCallable.java:73)\r\n\t\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreter.performOnStack(WollokInterpreter.java:184)\r\n\t\t\t\tat org.uqbar.project.wollok.interpreter.AbstractWollokCallable.call(AbstractWollokCallable.java:95)\r\n\t\t\t\tat org.uqbar.project.wollok.interpreter.core.WollokObject.call(WollokObject.java:112)\r\n\t\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreterEvaluator._call(WollokInterpreterEvaluator.java:791)\r\n\t\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreterEvaluator.call(WollokInterpreterEvaluator.java:898)\r\n\t\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreterEvaluator.perform(WollokInterpreterEvaluator.java:787)\r\n\t\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreterEvaluator._evaluate(WollokInterpreterEvaluator.java:767)\r\n\t\t\t\tat org.uqbar.project.wollok.launch.WollokLauncherInterpreterEvaluator.evaluate(WollokLauncherInterpreterEvaluator.java:189)\r\n\t\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreter.eval(WollokInterpreter.java:225)\r\n\t\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreterEvaluator.eval(WollokInterpreterEvaluator.java:132)\r\n\t\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreterEvaluator$1.apply(WollokInterpreterEvaluator.java:138)\r\n\t\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreterEvaluator$1.apply(WollokInterpreterEvaluator.java:1)\r\n\t\t\t\tat org.eclipse.xtext.xbase.lib.IteratorExtensions.fold(IteratorExtensions.java:626)\r\n\t\t\t\tat org.eclipse.xtext.xbase.lib.IterableExtensions.fold(IterableExtensions.java:534)\r\n\t\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreterEvaluator.evalAll(WollokInterpreterEvaluator.java:141)\r\n\t\t\t\tat org.uqbar.project.wollok.launch.WollokLauncherInterpreterEvaluator._evaluate(WollokLauncherInterpreterEvaluator.java:91)\r\n\t\t\t\tat org.uqbar.project.wollok.launch.WollokLauncherInterpreterEvaluator.evaluate(WollokLauncherInterpreterEvaluator.java:195)\r\n\t\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreter.eval(WollokInterpreter.java:225)\r\n\t\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreterEvaluator.eval(WollokInterpreterEvaluator.java:132)\r\n\t\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreterEvaluator$1.apply(WollokInterpreterEvaluator.java:138)\r\n\t\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreterEvaluator$1.apply(WollokInterpreterEvaluator.java:1)\r\n\t\t\t\tat org.eclipse.xtext.xbase.lib.IteratorExtensions.fold(IteratorExtensions.java:626)\r\n\t\t\t\tat org.eclipse.xtext.xbase.lib.IterableExtensions.fold(IterableExtensions.java:534)\r\n\t\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreterEvaluator.evalAll(WollokInterpreterEvaluator.java:141)\r\n\t\t\t\tat org.uqbar.project.wollok.launch.WollokLauncherInterpreterEvaluator._evaluate(WollokLauncherInterpreterEvaluator.java:72)\r\n\t\t\t\tat org.uqbar.project.wollok.launch.WollokLauncherInterpreterEvaluator.evaluate(WollokLauncherInterpreterEvaluator.java:191)\r\n\t\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreter.interpret(WollokInterpreter.java:141)\r\n\t\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreter.interpret(WollokInterpreter.java:117)\r\n\t\t\t\tat org.uqbar.project.wollok.launch.WollokLauncher.doSomething(WollokLauncher.java:39)\r\n\t\t\t\tat org.uqbar.project.wollok.launch.WollokChecker.doMain(WollokChecker.java:82)\r\n\t\t\t\tat org.uqbar.project.wollok.launch.WollokLauncher.main(WollokLauncher.java:29)\r\n\t\t\t\"\"\r\n\t\t}\r\n\t}\r\n\t\t]\r\n}\r\n\r\n```\r\n\r\nSample error\r\n\r\n```json\r\n{\r\n\t\"version\" : \"1.3.0\",\r\n\t\"tests\" : [\r\n{\r\n\t\"name\" : \"exported test from REPL session\",\r\n\t\"state\" : \"error\"\r\n\t\"error\" : {\r\n\t\t\"message\" : \"\",\r\n\t\t\"stacktrace\" : \"org.uqbar.project.wollok.interpreter.core.WollokProgramExceptionWrapper\r\n\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreterEvaluator._evaluate(WollokInterpreterEvaluator.java:337)\r\n\t\t\tat org.uqbar.project.wollok.launch.WollokLauncherInterpreterEvaluator.evaluate(WollokLauncherInterpreterEvaluator.java:175)\r\n\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreter.eval(WollokInterpreter.java:225)\r\n\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreterEvaluator.eval(WollokInterpreterEvaluator.java:132)\r\n\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreterEvaluator$1.apply(WollokInterpreterEvaluator.java:138)\r\n\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreterEvaluator$1.apply(WollokInterpreterEvaluator.java:1)\r\n\t\t\tat org.eclipse.xtext.xbase.lib.IteratorExtensions.fold(IteratorExtensions.java:626)\r\n\t\t\tat org.eclipse.xtext.xbase.lib.IterableExtensions.fold(IterableExtensions.java:534)\r\n\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreterEvaluator.evalAll(WollokInterpreterEvaluator.java:141)\r\n\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreterEvaluator._evaluate(WollokInterpreterEvaluator.java:659)\r\n\t\t\tat org.uqbar.project.wollok.launch.WollokLauncherInterpreterEvaluator.evaluate(WollokLauncherInterpreterEvaluator.java:149)\r\n\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreter.eval(WollokInterpreter.java:225)\r\n\t\t\tat org.uqbar.project.wollok.interpreter.AbstractWollokCallable.eval(AbstractWollokCallable.java:133)\r\n\t\t\tat org.uqbar.project.wollok.interpreter.AbstractWollokCallable$1.apply(AbstractWollokCallable.java:83)\r\n\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreter.performOnStack(WollokInterpreter.java:184)\r\n\t\t\tat org.uqbar.project.wollok.interpreter.AbstractWollokCallable.call(AbstractWollokCallable.java:95)\r\n\t\t\tat org.uqbar.project.wollok.interpreter.core.WollokObject.call(WollokObject.java:112)\r\n\t\t\tat org.uqbar.project.wollok.interpreter.core.WollokObject.throwMessageNotUnderstood(WollokObject.java:156)\r\n\t\t\tat org.uqbar.project.wollok.interpreter.core.WollokObject.call(WollokObject.java:128)\r\n\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreterEvaluator._call(WollokInterpreterEvaluator.java:791)\r\n\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreterEvaluator.call(WollokInterpreterEvaluator.java:898)\r\n\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreterEvaluator.perform(WollokInterpreterEvaluator.java:787)\r\n\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreterEvaluator._evaluate(WollokInterpreterEvaluator.java:767)\r\n\t\t\tat org.uqbar.project.wollok.launch.WollokLauncherInterpreterEvaluator.evaluate(WollokLauncherInterpreterEvaluator.java:189)\r\n\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreter.eval(WollokInterpreter.java:225)\r\n\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreterEvaluator.eval(WollokInterpreterEvaluator.java:132)\r\n\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreterEvaluator$1.apply(WollokInterpreterEvaluator.java:138)\r\n\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreterEvaluator$1.apply(WollokInterpreterEvaluator.java:1)\r\n\t\t\tat org.eclipse.xtext.xbase.lib.IteratorExtensions.fold(IteratorExtensions.java:626)\r\n\t\t\tat org.eclipse.xtext.xbase.lib.IterableExtensions.fold(IterableExtensions.java:534)\r\n\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreterEvaluator.evalAll(WollokInterpreterEvaluator.java:141)\r\n\t\t\tat org.uqbar.project.wollok.launch.WollokLauncherInterpreterEvaluator._evaluate(WollokLauncherInterpreterEvaluator.java:91)\r\n\t\t\tat org.uqbar.project.wollok.launch.WollokLauncherInterpreterEvaluator.evaluate(WollokLauncherInterpreterEvaluator.java:195)\r\n\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreter.eval(WollokInterpreter.java:225)\r\n\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreterEvaluator.eval(WollokInterpreterEvaluator.java:132)\r\n\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreterEvaluator$1.apply(WollokInterpreterEvaluator.java:138)\r\n\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreterEvaluator$1.apply(WollokInterpreterEvaluator.java:1)\r\n\t\t\tat org.eclipse.xtext.xbase.lib.IteratorExtensions.fold(IteratorExtensions.java:626)\r\n\t\t\tat org.eclipse.xtext.xbase.lib.IterableExtensions.fold(IterableExtensions.java:534)\r\n\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreterEvaluator.evalAll(WollokInterpreterEvaluator.java:141)\r\n\t\t\tat org.uqbar.project.wollok.launch.WollokLauncherInterpreterEvaluator._evaluate(WollokLauncherInterpreterEvaluator.java:72)\r\n\t\t\tat org.uqbar.project.wollok.launch.WollokLauncherInterpreterEvaluator.evaluate(WollokLauncherInterpreterEvaluator.java:191)\r\n\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreter.interpret(WollokInterpreter.java:141)\r\n\t\t\tat org.uqbar.project.wollok.interpreter.WollokInterpreter.interpret(WollokInterpreter.java:117)\r\n\t\t\tat org.uqbar.project.wollok.launch.WollokLauncher.doSomething(WollokLauncher.java:39)\r\n\t\t\tat org.uqbar.project.wollok.launch.WollokChecker.doMain(WollokChecker.java:82)\r\n\t\t\tat org.uqbar.project.wollok.launch.WollokLauncher.main(WollokLauncher.java:29)\r\n\t\t\"\r\n\t\t\"file\" : \"classpath:/wollok.wlk\",\r\n\t\t\"lineNumber\" : \"151\"\r\n\t}\r\n}\r\n\t\t]\r\n}\r\n\r\n```\r\n\r\nI still need to work more on it to\r\n* enhance stack trace\r\n* escape strings\r\n* address parser and validation errors as json (currently is a text not json)"}}