我希望学生向我们的服务器提交JavaScript代码。然后我们测试JavaScript代码,以确保学生解决了问题。我想测试抛出的异常、输出、返回的内容、执行时间、调用的单个变量和函数。
我们在 Heroku 中运行 Ruby on Rails,但我很高兴建立一个 node.js/io.js 服务器来运行 JavaScript 代码,并让我们的 Ruby on Rails 代码简单地发送用户提交的代码,等待用户提交代码的成功或问题响应,然后回复用户。
最好的解决方案是什么?当然,我还需要超时以确保while (true)
不会引起问题。
我认为一个有趣的解决方案是集成 circleci。Circleci将自动为您沙盒化应用程序。您可以简单地将测试命令覆盖为运行命令(例如 node cs_123123123123.js
),如果在运行 Circleci 时抛出异常,则会触发构建失败的 Webhook。
在检查调用堆栈等方面,无论您使用哪种解决方案,都会很棘手。虽然我不能就此给出具体建议,但您可以看看伊斯坦布尔如何检查代码覆盖率,因为它可能非常相似。祝你好运!
编辑:此外,另一个很酷的解决方案是实际上只是为这些circleci构建设置测试用例,以自动查看输出是否正确