Система от стар и заплетен, но работещ Python код, преобразуваща въпроси, описани в plain-text файлове, в красиво изглеждащи и готови за отпечатване PDF документи. В процеса се използва LaTeX.
Системата генерира както тестове, така и отделен PDF с верните отговори.
- Python 2.x, например 2.6
- LaTeX
- Уверете се, че имате Python >=2.6
- Инсталирайте си LaTeX, барабар с пакети за кирилица.
- Под Mac OS е лесно, на цената на 1.6GB download: http://www.tug.org/mactex/
- Под GNU/Linux ви трябва
texlive
- В Arch пакетите са
texlive-core
иtexlive-langcyrillic
- В Ubuntu -
texlive
иtexlive-lang-cyrillic
- В Arch пакетите са
- Клонирайте това хранилище.
Въпросите се описват в обикновени текстови файлове. Удобно е да се групират тематично в отделни файлове. Форматът на въпросите е следният:
Какъв ще бъде резултатът от изпълнението на следния израз:
`var name = 'World!';
(function () {
if (typeof name === 'undefined') {
var name = 'Jack';
console.log('Goodbye ' + name);
} else {
console.log('Hello ' + name);
}
})();`
* `Hello Jack`
* `Hello undefined`
+ `Goodbye Jack`
* Ще предизвика синтактична грешка
* `Hello World`
Верните отговори се отбелязват с +
, другите отговори – със символа *
. Има
един празен ред между текста на въпроса и отговорите, а самите отговори са
идентирани едно ниво навътре. В текста на самите въпроси не трябва да има
празни редове, освен ако не са във verbatim блок (заграденият в backticks).
Такива блокове са блоковете с код, например - там се допускат нови редове.
За да генерирате тестове, готови за отпечатване, следвайте следните стъпки:
-
Минете стъпките от секцията "Инсталация"
-
Влезте в директорията на този проект.
-
Копирайте си файла
generate_test.py-example
, например във файлjavascript_test_1_2014.py
. -
Редактирайте копирания файл и сменете датата и името на теста ("Програмиране с ... Тест номер ...")
-
Шаблонът на тестовете има 30 кутийки за верни отговори. Ако ви трябват по- малко, няма нужда да променяте нищо, просто някои кутийки ще бъдат празни. Ако ви трябват повече, ще трябва да променяте кода на проекта, поради липса на съответната конфигурационна опция.
-
Ако имате написани повече от 30 въпроса и искате да имате само 30 или по- малко в теста, трябва да промените стойността на променливата
counts
, дефинирана на ред 25 вgenerate_test.py
; тя трябва да има стойност списък с по един елемент за всеки файл с въпроси; елементът показва колко въпроса от файла да се използват; може да се ползва низът'all'
, или число -
От кореновата директория на проекта изпълнявате следната команда с Pythnon 2.x (не 3):
python javascript_test_1_2014.py <абсолютен път до папка с въпросите> вариант1 вариант2 ...
където
вариант1
,вариант2
и т.н. са имената на вариантите, които искате да имате. -
Ако всичко е минало по план, в
<абсолютен път до папка с въпросите>/<вариант?>
трябва да се намират файлове с вариантите, като за всеки вариант трябва да има поне<вариант?>.pdf
и<вариант?>-answers.pdf
.
Не забравяйте да прочетете внимателно теста (в поне един от вариантите), защото е много възможно да има проблеми на места с определени символи.
- Винаги ползвайте пълния, а не релативен път до папката, съдържаща
*.txt
файловете с въпроси - Избягвайте символите
%
- Внимавайте с новите редове в код, преди и след въпрос, около блока с отговорите
- Внимавайте в блока с отговорите да няма повече от един
+
(т.е. верен отговор) - Внимавайте в блока с отговорите да не сте пропуснали
+
-а на верния отговор - Може да има проблеми с
",
последователности, изяждайки ги - Символи
#
извън verbatim code blocks създават проблеми
В папката examples/
има примерни въпроси и примерна конфигурация на тест. За
да генерирате примерен тест с тези данни, изпълнете следните команди от папката
на проекта:
cp examples/generate_test.py generate_test.py
python2.6 generate_test.py `pwd`/examples one two three
В папката examples/
трябва да има папкки one
, two
и three
с различни
варианти (пермутации) на тестовите въпроси, както и съответен PDF с отговори.