库组件(Library Component)是SPFx 1.8的新功能:SharePoint Framework v1.8新功能:使用库组件(Library Component)在webpart间共享代码
这几篇博客介绍如何使用CircleCI实现库组件的持续集成,当向github提交代码之后,CircleCI自动执行如下任务:
1. 自动捆绑 (使用CircleCI实现SPFx库组件的持续集成(一))
2. 单元测试 (本篇)
3. 自动打包
首先配置jest,打开项目,在Terminal中运行如下命令安装jest以及配置:
npm install jest@23.6.0 @voitanos/jest-preset-spfx --save-dev
npm uninstall @types/jest
npm install @types/jest@23.3.0 --save-dev
这里需要指定jest版本为23.6.0,然后卸载默认安装的最新版本的jest types,重新安装jest types 23.3.0,否则在gulp bundle的时候会报错。
运行结束后,在src文件夹下添加tests文件夹,并创建“LibraryComponent.spec.ts"文件。
在LibraryComponent.spec.ts文件中添加测试代码:
import 'jest';
import SpFxCircleCiLibrary from './../spFxCircleCi/SpFxCircleCiLibrary';
let sut: SpFxCircleCiLibrary;
beforeEach(() => {
this.sut = new SpFxCircleCiLibrary();
});
test('name() returns the correct result', () => {
const result = this.sut.name();
expect(result).toEqual('SpFxCircleCiLibrary');
});
test('sum() returns the correct result', () => {
const result = this.sut.sum(5,2);
expect(result).toEqual(7);
});
在Terminal中运行npm test执行单元测试:
参考:https://blog.csdn.net/shrenk/article/details/85778433
提交代码,触发CircleCI的job,结果如下:
完整代码:https://github.com/shrenky/spfx-CircleCI