在沙箱中的服务器上运行JavaScript代码
我希望学生向我们的服务器提交JavaScript代码。然后我们测试JavaScript代码以确保学生解决了问题。我想测试抛出的异常、输出、返回的内容、执行时间、单个变量和调用的函数 我们在Heroku中运行RubyonRails,但我很乐意安装一个node.js/io.js服务器来运行JavaScript代码,让我们的RubyonRails代码只发送用户提交的代码,等待用户提交的代码成功或出现问题的响应,然后回复用户在沙箱中的服务器上运行JavaScript代码,javascript,ruby-on-rails,heroku,sandbox,sandbox-solution,Javascript,Ruby On Rails,Heroku,Sandbox,Sandbox Solution,我希望学生向我们的服务器提交JavaScript代码。然后我们测试JavaScript代码以确保学生解决了问题。我想测试抛出的异常、输出、返回的内容、执行时间、单个变量和调用的函数 我们在Heroku中运行RubyonRails,但我很乐意安装一个node.js/io.js服务器来运行JavaScript代码,让我们的RubyonRails代码只发送用户提交的代码,等待用户提交的代码成功或出现问题的响应,然后回复用户 最好的解决方案是什么?当然,我还需要有一个超时,以确保而(true)不会引起问
最好的解决方案是什么?当然,我还需要有一个超时,以确保
而(true)
不会引起问题。我认为一个有趣的解决方案是集成。Circleci将自动为您沙箱应用程序。您可以简单地使用run命令(例如,节点cs_123123.js
),如果它在运行circleci时引发异常,将触发构建失败的webhook
在检查调用堆栈等方面,无论您使用什么解决方案,都会很棘手。虽然我不能给出关于这方面的具体建议,但您可以看看如何检查代码覆盖率,因为它可能非常相似。祝你好运
编辑:另外,另一个很酷的解决方案是为这些circleci构建实际设置测试用例,以自动查看输出是否正确似乎有点过分了。我必须提交并推送学生发送的每个代码片段,然后让circleci运行测试?哦,我想象他们会自己提交代码。但是你可以让circleci自动运行分支,所以如果你在像bitbucket这样的平台上,你可以限制学生访问他们自己的分支,让circleci独立自动地对他们的代码运行测试