1

学生に JavaScript コードを私たちのサーバーに送信してもらいたい. 次に、その JavaScript コードをテストして、学生が問題を解いたことを確認します。スローされた例外、出力、返されたもの、実行時間、呼び出された個々の変数と関数をテストしたいと思います。

私たちは Heroku で Ruby on Rails を実行していますが、JavaScript コードを実行する node.js/io.js サーバーを立ち上げて、Ruby on Rails コードにユーザーが送信したコードを単純に送信し、ユーザーが送信したコードの成功または問題を確認し、ユーザーに返信します。

これに対する最善の解決策は何ですか?もちろん、while (true)s が問題を引き起こさないようにするために、タイムアウトも必要です。

4

1 に答える 1

0

興味深い解決策は、 circleciを統合することだと思います。Circleci がアプリを自動的にサンドボックス化します。テスト コマンドを実行コマンド (例: ) としてオーバーライドするだけnode cs_123123123123.jsで、circleci の実行中に例外がスローされると、ビルドに失敗した Webhook がトリガーされます。

コール スタックなどのチェックに関しては、どのソリューションを使用してもトリッキーになります。これに関して具体的なアドバイスはできませんが、istanbulがコード カバレッジをチェックする方法は非常に似ている可能性が高いため、こちらを参照してください。頑張ってください!

編集:また、別のクールな解決策は、これらのcircleciビルドのテストケースを実際にセットアップして、出力が正しいかどうかを自動的に確認することです

于 2015-03-13T23:52:11.853 に答える