繁体   English   中英

使用webpack-dev-server进行自动测试

[英]Autotests with webpack-dev-server

我对话题很困惑。

我使用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}`); }); }); 

它启动并正常工作:获取一些文件请求,将必要的模块与webpack捆绑在一起,并将其发送给请求者。
我要开始的简单测试是在组装后检查是否有文件。

假定逻辑为:

  • 在该项目中运行一些命令,例如npm run test
  • 它启动服务器并发送带有我要测试的不同逻辑的请求包(并行,同时请求等)。
  • 它测试文件的存在并将结果发送给我控制台或smth。 那种

问题是我很少有任何测试的经验,因此,感谢您的帮助。

===
我现在使用它的方式(扰流器:手动)

互联网对我唯一的帮助。

  • 服务器照常启动
  • 还有另一个完全不在现场的测试模块(下面的代码)
  • 运行mocha
  • 查看列出的测试结果

测试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 }); 

是的,它有效。 但是我想要更多的自动化。 只是

  • 运行服务器
  • 发送请求
  • 获取测试结果

我准备进行对话。

好吧..只是伤心,没人问。

无论如何,我自己找到了答案。 我什至不知道它是如此的容易。 似乎所有我需要的都写在这里: https : //github.com/mochajs/mocha/wiki/Using-mocha-programmatically

因此,最终结果与此类似:

 import fs from "fs"; import path from "path"; import Mocha from "mocha"; const mocha = new Mocha(); const testDir = `${config.dirname}/test/tests`; fs.readdirSync(testDir) .filter(file => file.match(/\\.js$/)) .forEach(file => { mocha.addFile(path.join(testDir, file)); }); // somewhere before the devserver start const runner = mocha.timeout(30000).run(); runner.on("end", () => { process.exit(); }); 

我在发布此问题的那天就找到了它,但是希望其他人能够回答(比较解决方案)。

最好的祝福,
尼克·里默

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM