I would prefer pulling those return statements out merged in a single one. In the try/catch you would just set get the failure state in a boolean variable.

Outside, you can compute all the rest. This way you would avoid repeating these pieces of code: 

* keys of the object
* `end = now()`
* `duration: end - start`

This would give something like: 

```javascript
return {
	output: failure ? null : convertToObject(parsedTree),
	result: expectedFailure ? failure : (failure ? false : objectIncludes(params.output, actualOutput)),
	duration: end - start,
	failure: failure
};
```
(feel free and advised to split the nested ternary expressions)