Я совершенно запутался с темой.
Я разрабатываю какой-то ленивый модуль для сборки модулей, используя webpack-dev-server.Это наконец работает, но иногда нам нужно больше уверенности.Вот почему мне нужно несколько тестов.Задача состоит в том, чтобы сделать их своего рода автотестами.
Пока код запуска сервера выглядит следующим образом (я опускаю лишние параметры).
import webpack from "webpack";
import webpackConfig from "../webpack.config.js";
import webpackCompileConfig from "../webpack-compiler.config.mjs";
import WebpackDevServer from "webpack-dev-server";
webpack(webpackConfig(mode, dirname, masterPath)).run(function(err) {
if (err) throw err;
const compileOpt = {
// pack of compiler options
};
const compiler = webpack(webpackCompileConfig(compileOpt));
const server = new WebpackDevServer(compiler, {
// pack of server options
});
server.listen(port, "0.0.0.0", err => {
if (err) throw err;
console.log(`Starting root server on 0.0.0.0:${port}`);
});
});
Запускается и работает правильно: получает некоторые запросы к файлам, связывает необходимые модули с веб-пакетом и отправляет их запрашивающей стороне.
Простой тест, с которого я хочу начать, заключается в проверкеесть ли файлы после сборки или нет.
Предполагаемая логика:
- Выполнить некоторую команду внутри этого проекта, например,
npm run test
- Запускает сервер и отправляет пакет запросов.с другой логикой, которую я хочу протестировать (параллельные, одновременные запросы и т. д.)
- Он проверяет существование файла и отправляет мне результаты в консоли или в другом месте.такого рода
Проблема в том, что у меня очень мало опыта в любом виде тестирования, поэтому я буду признателен за вашу помощь.
===
То, как я сейчас его использую (спойлер: вручную)
Единственное, в чем мне помогает интернет.
- Сервер запускается как обычно
- Есть еще один полностью выключенныйтестовый модуль (код ниже)
- Выполнить
mocha
- См. список результатов теста
test-server.js
var chai = require("chai");
var chaiHttp = require("chai-http");
const should = chai.should();
chai.use(chaiHttp);
describe("Test file existence", function() {
it("units", done => {
chai
.request("http://localhost:9000")
.get("/units/awesome-project/index.js")
.end((err, res) => {
res.should.have.status(200);
done();
});
});
// another 'it()'s to test other files
});
Да, работает.Но я хочу больше автоматизации.Просто
- Запустите сервер
- Отправьте запросы
- Получите результаты теста
Я готов к диалогу.