mipengine / mip

[Deprecated] 请查看 mip2
https://www.mipengine.org/
MIT License
380 stars 81 forks source link

更新测试不依赖build, 支持 less 文件加载测试 #209

Closed xuexb closed 6 years ago

xuexb commented 7 years ago

在写测试用例时发现测试时需要先运行node tools/build.js test, 该命令会处理:

  1. AMD 的依赖提取
  2. AMD 的 ID 提取

导致修改一个代码需要反复的执行才可以看到结果. 结合 esl.js 天然的异步加载优势, 做出如下改动:

  1. karma 测试时直接加载源 src/*, test/* 文件进行
  2. 覆盖率上报使用 travis-ci 的勾子进去, 避免本地冗余处理
  3. 优化 npm run scripts 脚本, 添加了 test:watch 功能, 可以很方便的监听代码改动进行测试
  4. 添加了 src/less/mip.less 测试环境支持, 利用的是 pretest 勾子在测试前编译
  5. 优化 test:sl 浏览器测试必须在覆盖率测试通过后进行, 避免某些测试不通过时进行了浏览器测试导致报错, 影响 master 徽章
  6. 优化 travis 测试流程, 只测试覆盖率+浏览器测试
  7. 由于进行测试时发现 src/util.js 文件有问题, 修改了该文件, 重点关注

这次升级之后就可以:

# 单元测试
npm run test / npm test

# 本地运行覆盖率测试
npm run test:co

会在命令行打出整体报告, 并且生成 /coverage 覆盖率详细报告

=============================== Coverage summary ===============================
Statements   : 95.82% ( 1741/1817 )
Branches     : 86.4% ( 883/1022 )
Functions    : 93.67% ( 281/300 )
Lines        : 95.82% ( 1741/1817 )
================================================================================

# 监听 src/ test/ 的文件变动自动测试
npm run test:watch

本次修改主要针对测试的流程、易用性升级, 理论上不影响核心代码, 请大家多 Review 下~

本地运行测试通过, travis-ci 有问题我再看~

coveralls commented 7 years ago

Coverage Status

Coverage decreased (-3.3%) to 92.392% when pulling 0a42d3bff372c6000b4856c46566c7422aa70e49 on xuexb:feature/karma into b1dc63c3cae66de8e96b896bc0e7a11f56fbca8d on mipengine:master.

wupengFEX commented 7 years ago
xuexb commented 7 years ago

less编译:build-mip-less,pretest:sl,pretest没有区别

这个主要是添加了个 npm run build-mip-less 命令, 使用 pre* 操作在测试用例前把 less 编译成 css, 然后在 karma 运行时直接引用, 这样方便后续基于样式的测试, 当然之前也没有引入 less, 也可以去掉. 可以理解, 这个 npm run build-mip-less 命令就是为了配合 karma 测试的~ 对上线之类没有影响~

另外编译出来的位置放在dist里面是不是更合适点

赞, 我改到 /dist/mip.css 吧~


npm run dev: dev和build我觉得一是在于版本号的区分(build在文件后加了版本号),二是适应场景不同,dev用于线下调试,build用于线上编译;三是压缩区分,dev下对mip.js没有做压缩,但是对于mip.css做了压缩,我觉得可以统一下,dev对编译的文件都不要做压缩,也可以方便修改。

我理解 npm run build 应该是为了发版上线吧, 而 npm run dev 之前应该就是为了本地开发, 对比下:

比如开发/修改下 src/util.js 代码

修改前

  1. 在页面引用:
    <link rel="stylesheet" href="./dist/mip.css">
    正文
    <script src="./dist/mip.js"></script>
  2. 运行 npm run dev 产出运行时文件
  3. 在下次修改时, 再次运行上面命令编译

即使基于 mip server 命令(该命令只会做个 alias 功能, 实际还是需要存在源文件才可以), 想开发核心代码也需要主动的编译

修改后

  1. 在页面引用:
    <link rel="stylesheet" href="./dist/mip.css">
    正文
    <script src="./deps/promise.js"></script>
    <script src="./deps/document-register-element.max.js"></script>
    <script src="./deps/esl.js"></script>
    <script>
    require.config({
        baseUrl: './src',
        paths: {
            'jquery': '../deps/jquery',
            'zepto': '../deps/zepto',
            'naboo': '../deps/naboo',
            'fetch': '../deps/fetch',
            'fetch-jsonp': '../deps/fetch-jsonp'
        }
    });
    require(['mip']);
    </script>
  2. 运行 npm run build-mip-less 编译 /dist/mip.css
  3. src/**/*.js 实时修改, 刷新生效

不过这种方式不支持 mip server 本地化形式, 需要先运行 npm run build ~


不会删除 dev 逻辑, 其实只是把 esl 的异步加载应用了, 我再加个 <用户贡献指南> 说明下如何开发测试核心代码吧~

coveralls commented 7 years ago

Coverage Status

Coverage decreased (-3.3%) to 92.392% when pulling 07f9ea106dcc7eb915a0d23fc74de495f38c8638 on xuexb:feature/karma into b1dc63c3cae66de8e96b896bc0e7a11f56fbca8d on mipengine:master.

coveralls commented 7 years ago

Coverage Status

Coverage decreased (-3.3%) to 92.427% when pulling 57854085e5a90ee15c178cd816ca599b52ab2f51 on xuexb:feature/karma into b1dc63c3cae66de8e96b896bc0e7a11f56fbca8d on mipengine:master.

coveralls commented 7 years ago

Coverage Status

Coverage decreased (-3.4%) to 92.356% when pulling d0c63f772010e6fa29712e8dc5b7653ccd686f90 on xuexb:feature/karma into b1dc63c3cae66de8e96b896bc0e7a11f56fbca8d on mipengine:master.

coveralls commented 7 years ago

Coverage Status

Coverage decreased (-2.1%) to 93.625% when pulling 9e41c42ccf41d15174f76a36751089d6c2ceee3c on xuexb:feature/karma into b1dc63c3cae66de8e96b896bc0e7a11f56fbca8d on mipengine:master.

coveralls commented 7 years ago

Coverage Status

Coverage decreased (-1.02%) to 94.716% when pulling 5f19e9160465afa4e6572c94dcd8436f4d805cda on xuexb:feature/karma into b1dc63c3cae66de8e96b896bc0e7a11f56fbca8d on mipengine:master.

coveralls commented 7 years ago

Coverage Status

Coverage decreased (-1.0%) to 94.787% when pulling d59dd4f11b5af929bb03adffa121e9e784cddb1d on xuexb:feature/karma into b1dc63c3cae66de8e96b896bc0e7a11f56fbca8d on mipengine:master.

coveralls commented 7 years ago

Coverage Status

Coverage decreased (-0.4%) to 95.323% when pulling 9f8002a57c88d1871f65b382ff18171702f5878b on xuexb:feature/karma into b1dc63c3cae66de8e96b896bc0e7a11f56fbca8d on mipengine:master.

coveralls commented 7 years ago

Coverage Status

Coverage decreased (-0.1%) to 95.637% when pulling 3ea65fb30d1ca160fefc396c78551fe6bdf9b319 on xuexb:feature/karma into b1dc63c3cae66de8e96b896bc0e7a11f56fbca8d on mipengine:master.

coveralls commented 6 years ago

Coverage Status

Coverage decreased (-0.1%) to 95.623% when pulling d1c0b9da31f0c2508d9b602fbbb65aad7f6f75d4 on xuexb:feature/karma into b1dc63c3cae66de8e96b896bc0e7a11f56fbca8d on mipengine:master.