我想在没有浏览器弹出窗口的情况下运行测试。如图所示安装wct-headless并配置wct.config.json
{
"plugins": {
"local": {
"disabled": true
},
"headless": {
"browsers": [
"chrome",
"firefox"
],
"browsersOptions": {
"chrome": [
"headless",
"disable-gpu",
"no-sandbox"
],
"firefox": [
"--headless"
]
}
},
"sauce": false,
"xunit-reporter": {
"output": "testfile.xml"
}
}
}
Run Code Online (Sandbox Code Playgroud)
执行polymer test时出现以下错误
找不到名为“headless”的 WCT 插件
包.json
"dependencies": {
"@polymer/polymer": "^3.0.0"
},
"devDependencies": {
"@polymer/iron-demo-helpers": "^3.0.0-pre.19",
"@webcomponents/webcomponentsjs": "^2.0.0",
"wct-browser-legacy": "^1.0.0",
"wct-headless": "^2.2.2",
"web-component-tester": "^6.8.0",
"wct-xunit-reporter": "1.0.2"
}
Run Code Online (Sandbox Code Playgroud)
我应该如何配置 wct.conf.json ??
我是ngrx-6的新手.效果将侦听操作"LOAD_COURSE_DETAILS",并应使用course_id(action.payload)调用服务.但我收到一个错误
"行动"类型中缺少"toFixed"属性.
但是,如果我执行console.log,我可以看到数据从组件传递到效果.
提前致谢.
文件:效果
@Effect()
loadCourseDetails$ = this.actions$.pipe(
ofType(CourseActionTypes.LOAD_COURSE_DETAILS),
switchMap((action) => {
console.log('in course effects', action);
return this.courseService.getCourseDetails(action).pipe(
map((data) => new fromCourse.LoadCourseDetailsSuccess(data))
);
})
);Run Code Online (Sandbox Code Playgroud)
file:actions.ts(我的操作定义了有效负载)
export class LoadCourseDetails implements Action {
readonly type = CourseActionTypes.LOAD_COURSE_DETAILS;
constructor(public payload: Number) {}
}
export class LoadCourseDetailsSuccess implements Action {
readonly type = CourseActionTypes.LOAD_COURSE_DETAILS_SUCCESS;
constructor(public payload: ICourse) {}
}Run Code Online (Sandbox Code Playgroud)
file:component.ts(dispatch action)
loadCourseDetails(id: Number) {
console.log('dispatch course id', id);
this.store.dispatch(new fromCourse.LoadCourseDetails(id));
}Run Code Online (Sandbox Code Playgroud)
file:service.ts(由效果调用)
getCourseDetails(courseId: Number) {
return this.http.get(`url/${courseId}.json`);
}Run Code Online (Sandbox Code Playgroud)
我在组件中有 api 调用,这很耗时,所以我实现了解析器。我希望解析器数据存在于商店中,以供以后使用。我已经实现了 ngrx/store、ngrx/effects 和 ngrx/router-store。
组件中的当前状态
期望状态
为了保存解析器数据,我需要访问有效的解析器数据。所以我可以简单地在组件中调度操作并订阅状态。
{}我总是在 CustomSerializer 中的“数据”中变空。
减速器/index.ts(CustomSerializer)
export interface RouterStateUrl {
url: string;
queryParams: Params;
params: Params;
data: any;
}
export const reducers: ActionReducerMap<State> = {
routerReducer: fromRouter.routerReducer
};
@Injectable()
export class CustomSerializer implements fromRouter.RouterStateSerializer<RouterStateUrl> {
serialize(routerState: RouterStateSnapshot): RouterStateUrl {
let route = routerState.root;
while (route.firstChild) {
route = route.firstChild;
}
const { …Run Code Online (Sandbox Code Playgroud)