【问题标题】:Running JavaScript code on the server in a sandbox在沙箱中的服务器上运行 JavaScript 代码
【发布时间】:2015-05-16 14:18:26
【问题描述】:

我希望学生将 JavaScript 代码提交到我们的服务器。然后我们测试该 JavaScript 代码以确保学生解决了问题。我想测试抛出的异常、输出、返回的内容、执行时间、调用的各个变量和函数。

我们在 Heroku 中运行 Ruby on Rails,但我很高兴建立一个 node.js/io.js 服务器来运行 JavaScript 代码,让我们的 Ruby on Rails 代码简单地发送用户提交的代码,等待对用户提交的代码的成功或问题作出响应,然后回复用户。

对此最好的解决方案是什么?当然,我也需要超时以确保while (true)s 不会引起问题。

【问题讨论】:

    标签: javascript ruby-on-rails heroku sandbox sandbox-solution


    【解决方案1】:

    我认为一个有趣的解决方案是集成circleci。 Circleci 将自动为您的应用程序沙箱化。您可以简单地将override the test commands 作为运行命令(例如node cs_123123123123.js),如果它在运行circleci 时抛出异常将触发构建失败的webhook。

    在检查调用堆栈等方面,无论您使用什么解决方案都会很棘手。虽然我无法就此给出具体建议,但您可以查看istanbul 如何检查代码覆盖率,因为它可能非常相似。祝你好运!

    编辑:另外,另一个很酷的解决方案是实际上只是为这些 circleci 构建设置测试用例,以自动查看输出是否正确

    【讨论】:

    • 看起来有点矫枉过正。我必须提交并推送学生发送的每一个代码 sn-p,然后让 circleci 运行测试?
    • 哦,我以为他们会自己提交代码。但是你可以让circleci自动运行分支,所以如果你在像bitbucket这样的平台上,你可以限制学生访问他们自己的分支,让circleci独立并自动在他们的代码上运行你的测试
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-01
    • 1970-01-01
    • 2014-04-17
    • 2013-01-01
    相关资源
    最近更新 更多