要在Angular 7中使用Jasmine进行自动化测试,并设置窗口大小以适应移动端和Web端的测试,可以按照以下步骤操作:
npm install jasmine-core jasmine-spec-reporter --save-dev
test.ts
的文件,并添加以下代码:import { getTestBed } from '@angular/core/testing';
import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing';
declare const require: any;
getTestBed().initTestEnvironment(
BrowserDynamicTestingModule,
platformBrowserDynamicTesting()
);
const context = require.context('./', true, /\.spec\.ts$/);
context.keys().map(context);
src
文件夹中创建一个名为setupJasmine.ts
的文件,并添加以下代码:import JasmineSpecReporter from 'jasmine-spec-reporter';
jasmine.getEnv().clearReporters();
jasmine.getEnv().addReporter(new JasmineSpecReporter({}));
// 设置窗口大小
jasmine.getEnv().beforeAll(() => {
const width = 800; // 设置宽度
const height = 600; // 设置高度
// 检测是否在移动设备上运行
if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {
// 在移动设备上设置窗口大小
browser.driver.manage().window().setSize(width, height);
} else {
// 在Web端设置窗口大小
browser.driver.manage().window().setSize(width, height);
}
});
karma.conf.js
文件,将test.ts
文件和setupJasmine.ts
文件添加到files
和preprocessors
属性中。修改后的karma.conf.js
文件示例如下:module.exports = function(config) {
config.set({
// ...
files: [
// ...
'test.ts',
'src/setupJasmine.ts'
],
preprocessors: {
// ...
'test.ts': ['@angular/cli'],
'src/setupJasmine.ts': ['@angular/cli']
},
// ...
});
};
ng test
现在,Jasmine测试在移动端和Web端上都会自动设置窗口大小,并根据需要进行适配。根据移动设备或浏览器的窗口大小,您可以在测试中使用browser.driver.manage().window().getSize()
方法来获取当前窗口大小。