В Java-версии Google App Engine, как вы можете оценивать и выполнять Java-код и модульные тесты, передаваемые как строки? - PullRequest
0 голосов
/ 23 июня 2010

В настоящее время я использую онлайн-систему, работающую в Google App Engine, чтобы студенты могли практиковаться в написании кода на python.Система основана на codingbat Ника Парланте и публичной версии Beanshell , работающей на appengine.

Я хотел бы расширить нашу систему для поддержки Java.В нашей нынешней системе функция документооборота Python позволяет инструкторам очень просто набрать серию объявлений и тестов переменных, которые затем можно выполнить для кода, представленного студентом.Это очень интуитивно понятно для инструкторов, что важно для обеспечения того, чтобы многие люди писали тесты.

Как заменить следующие комментарии кодом Java для оценки и выполнения тестов в Java?

String solution = “a=1;”;
solution += “b=1;”;

String problem = “self.assertEqual(a,1);”;
problem += “c=3;”;
problem += “self.assertEqual(b,2);”;

//eval the solution string
//eval the problem string possibly wrapped by additional junit or other Java code.
//results = Run all the tests
System.out.println(“Test       expected     received   result”);
//For result in results
//  print test, expected, received, result(pass/fail)

Требуемый вывод:

Test                   expected  received  result
self.assertEqual(a,1)  1         1         pass
self.assertEqual(b,2)  2         1         fail

В идеале любое количество тестов может быть включено в приведенную выше строку задачи, и любое количество операторов Java может быть включено в строку решения, чтобыпройти тесты, включенные в строку задачи.

1 Ответ

1 голос
/ 23 июня 2010

Насколько я знаю, вы не можете.Компиляция кода Java во время выполнения требует доступа к API, которые недоступны в App Engine;вот почему такие вещи, как BeanShell и LOTRepls не поддерживают Java.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...