Мне нравится тестировать тот же код через Node.js и в браузере, в зависимости от ситуации. Я знаю, что вы просили «поместить результаты в браузер» (от Node.js?), Но я надеюсь, что этого будет достаточно.
Этот пример был создан на компьютере с Windows, но он также будет работать на Mac и Linux.
Для этого необходимо сделать не, для этого требуется веб-сервер (Node.js или другой).
Чтобы запустить тесты в браузере, откройте файл ./test/index.html.
Чтобы выполнить тесты в командной строке, просто выполните «мокко».
Начиная с нуля:
C:\TEMP>mkdir mocha_node_browser
C:\TEMP>cd mocha_node_browser
C:\TEMP\mocha_node_browser>dir
Volume in drive C is MessedUp
Volume Serial Number is CAB2-E609
Directory of C:\TEMP\mocha_node_browser
2014-08-09 12:17 <DIR> .
2014-08-09 12:17 <DIR> ..
0 File(s) 0 bytes
2 Dir(s) 287,218,769,920 bytes free
Инициализировать каталог, который будет содержать все тесты. Всегда называют это "тест":
C:\TEMP\mocha_node_browser>mocha init test
Редактировать и/или создать несколько файлов:
C:\TEMP\mocha_node_browser>gvim -p test_me.js test\index.html test\tests.js
я использую Chai. Один и тот же файл chai.js будет использоваться в обоих тестах.
C:\TEMP\mocha_node_browser>cd test
C:\TEMP\mocha_node_browser\test>curl -O http://chaijs.com/chai.js
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 117k 100 117k 0 0 99902 0 0:00:01 0:00:01 --:--:-- 99902
C:\TEMP\mocha_node_browser\test>cd ..
После создания/редактирования файлов, запускать тесты с помощью командной строки:
C:\TEMP\mocha_node_browser>mocha
.
1 passing (15ms)
... или указать свой браузер на ./test/index.html.
passes: 1
failures: 0
duration: 0.03s
whatever
should return "it worked!"
содержимое файла:
C:\TEMP\mocha_node_browser>type test_me.js
// the function to be tested
function whatever() {
return 'it worked!';
}
// only kicks in when running in Node.js via "mocha"
if (typeof module !== 'undefined') {
module.exports = whatever;
}
Добавить Chai и ваш источник, который вы хотите проверить в тестовом/index.html:
C:\TEMP\mocha_node_browser>type test\index.html
<!DOCTYPE html>
<html>
<head>
<title>Mocha</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="mocha.css" />
</head>
<body>
<div id="mocha"></div>
<script src="mocha.js"></script>
<script>mocha.setup('bdd')</script>
<!-- added to index.html: -->
<script src="./chai.js"></script>
<script src="../test_me.js"></script>
<script src="tests.js"></script>
<script>
mocha.run();
</script>
</body>
</html>
сделать тесты совместимы с командной строки и браузер
C:\TEMP\mocha_node_browser>type test\tests.js
if (typeof require !== 'undefined') {
// testing in command-line
var chai = require('./chai');
var whatever = require('../test_me');
}
var expect = chai.expect;
describe('whatever', function() {
it('should return "it worked!"', function() {
expect(whatever()).to.equal("it worked!");
});
});
Вы хотите видеть результат каждого теста или только результат конечного результата? –
Что я ошибка, которая бросается? '$ mocha --reporter doc> report.html', похоже, работает на моей машине. –
@limelights Каждое испытание, если возможно, но знание обоих было бы хорошим. – whitfin