Как выполнить тесты мокки в браузере?
Это только я, или их документация не объясняет, как вообще запускать тесты в браузере?
Должен ли я создать этот HTML файл, который они показывают в примере? Как мне заставить его запускать мой конкретный набор тестовых примеров для моего проекта?
Мне нужен тот же результат, что и запуск mocha
из корня проекта. Все подкаталоги внутри папки test
должны быть включены
Ответы
Ответ 1
Если нам нужно запустить наши тесты в браузере, нам нужно настроить простую HTML-страницу, чтобы быть нашей страницей тестового бегуна. Страница загружает Mocha, библиотеки тестирования и наши фактические тестовые файлы. Чтобы запустить тесты, просто откройте бегун в браузере.
Пример html-кода:
<!DOCTYPE html>
<html>
<head>
<title>Mocha Tests</title>
<link rel="stylesheet" href="node_modules/mocha/mocha.css">
</head>
<body>
<div id="mocha"></div>
<script src="node_modules/mocha/mocha.js"></script>
<script src="node_modules/chai/chai.js"></script>
<script>mocha.setup('bdd')</script>
<!-- load code you want to test here -->
<!-- load your test files here -->
<script>
mocha.run();
</script>
</body>
</html>
Настройка структуры каталогов
Вы должны поместить свои тесты в отдельный каталог из ваших основных файлов кода. Это упрощает их структурирование, например, если вы хотите добавить другие типы тестов в будущем (например, интеграционные тесты или функциональные тесты).
Самая популярная практика с JavaScript-кодом - иметь каталог с именем test/в корневой директории проектов. Затем каждый тестовый файл находится под тестом /someModuleTest.js.
Важные вещи:
- Мы загружаем стили CSS Mochas, чтобы дать нашим результатам тестирования хорошее форматирование.
- Мы создаем div с ID-моккой. Здесь результаты испытаний
вставлен.
- Мы загружаем Мокку и Чай. Они расположены в подпапках
node_modules, так как мы установили их через npm.
- Вызывая mocha.setup, мы делаем доступными помощники по тестированию Mochas.
- Затем мы загружаем код, который хотим протестировать, и тестовые файлы. Мы не
есть что-то здесь еще.
- Наконец, мы вызываем mocha.run для запуска тестов. Убедитесь, что вы вызываете это
после загрузки исходных и тестовых файлов
Ответ 2
Я думал, что документация тоже не совсем понятна, но в конце концов я понял это и настроил. Вот как:
Включите скрипт Mocha и CSS в Index.html. Также добавьте div с идентификатором "Mocha" для вывода, который будет вставлен в. Включите тестовый скрипт, который вы хотите выполнить.
<link href="lib/mocha/mocha.css" rel="stylesheet" />
<script src="lib/mocha/mocha.js"></script>
<script src="test/my_mocha_test.js"></script>
<div id="mocha"></div>
В ваш тестовый файл (my_mocha_test.js в этом примере) включите эту строку установки вверху:
// 'bdd' stands for "behavior driven development"
mocha.setup('bdd');
Теперь, когда тест и содержимое Mocha загружены, вы можете запустить тесты с помощью этой команды:
mocha.run();
Вы можете добавить это к слушателю события и вызвать его нажатием кнопки или другим событием, или вы можете просто запустить его из консоли, но он должен поместить тестовый вывод в div с идентификатором "mocha". Вот страница со всем этим, настроенная для просмотра кода на GitHub.
https://captainstack.github.io/public-stackhouse/
Ответ 3
Мой способ сделать это с:
ES6, импорт, экспорт, чай
Используется mocha 6.1.4 и chai 4.2.0.
SRC/MyClass.js:
export default class MyClass { }
тест /MyClass.js:
import MyClass from "../src/MyClass.js";
let assert = chai.assert;
describe('MyClass tests', function () {
describe('The class', function () {
it('can be instantiated', function () {
assert.isObject(new MyClass());
});
});
});
тест /index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Mocha</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="mocha.css">
<script src="mocha.js"></script>
<script src="../node_modules/chai/chai.js"></script>
<script type="module" class="mocha-init">
mocha.setup('bdd');
</script>
<!-- ------------------------------------ -->
<script type="module" src="test.js"></script>
<!-- ------------------------------------ -->
<script type="module">
mocha.run();
</script>
</head>
<body>
<div id="mocha"></div>
</body>
</html>
Файлы mocha.js и mocha.css были созданы с помощью mocha init test
mocha, но их также можно найти в node_modules/mocha.
Если это невозможно, дайте мне знать. Ответ на этот пост.