MarkScript

Материал из MyTestXPro Wiki Help
Перейти к навигации Перейти к поиску

Выставление оценки за тест используя свой скрипт.

Настройка оценивая теста находится в Редакторе тестов на странице Параметры теста.

Mark param1.png

В редких случаях обычной шкалы оценивания может быть недостаточно, а нужно учитывающий какие-то особые требования. Например, кроме набранных баллов нужно еще учесть результаты по каждой группе в отдельности. В этом случае для вычисления оценки за тест можно использовать свой скрипт (небольшую программу на языке программирования JavaScript).

Предупреждение: не используйте эту возможность без необходимости. Это бета-версия, реализация может измениться в дальнейшем.

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

Mtx editor markedit.png Mtx editor markscript1.png

Для сохранения неизменным формата теста, оценочный скрипт записывается в конце заметок к тесту после строки /*MarkScript*/ (до нее можно писать в заметках все что угодно).

Например, если требуется поставить оценку в соответствии со следующими критериями:

а) если есть хотя бы одна группа из которой не решено верно хотя бы одно задание, то "2"

б) иначе "3" - 30% от возможного кол-ва баллов, на "4" - 60%, на "5" - 90%.

то можно задать вот такой скрипт:

/*MarkScript*/
function main(R, G){
  var m = {};
  var f = true;
  for (var key in G){
    if(G[key]['CountLimit']!=0 && G[key]['CountCorrectTask']<1){
      f = false;
      break;
    }
  }
  var X = {3:30, 4:60, 5:90};
  if(f){
    m['value'] = 2;
    for (var i in X){
      if (X[i]<=(100*R['Score']/R['ScoreMax'])){
          m['value'] = i;
      }
    }
    m['note'] = 'Все хорошо!';
  }else{
    m['value'] = 2; 
    m['note'] = 'Есть нулевые темы!';    
  }
  return m;
}

Функция для вычисления оценки называется main. Она получает два параметра: общие результаты по тесту и результаты по каждой группе. Эти два объекта создаются автоматически. Например, они могут выглядеть так:

Показать


Функция main должна вернуть объект с оценкой и (необязательно) с названием оценки и примечанием.

  var m = {};
  //...
  m['value'] = 3; 
  m['title'] = 'Зачет';
  m['note'] = 'Есть нулевые темы!';   
  return m;

Примечание можно увидеть в журнале (столбец "Примечание") и всплывающей подсказкой наведя мышь на оценку в окне результата.