Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何使用nguniversal在Angular中测试服务器端代码_Node.js_Angular_Typescript_Protractor_Karma Jasmine - Fatal编程技术网

Node.js 如何使用nguniversal在Angular中测试服务器端代码

Node.js 如何使用nguniversal在Angular中测试服务器端代码,node.js,angular,typescript,protractor,karma-jasmine,Node.js,Angular,Typescript,Protractor,Karma Jasmine,我有11个角 环境信息 _ _ ____ _ ___ / \ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _| /△ \ | '_ \ / _` | | | | |/ _` | '__| | | | | | | / ___ \| | | | (_| | |_| | | (_| | | | |___| |_

我有11个角

环境信息

     _                      _                 ____ _     ___
    / \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|
   /△ \ | '_ \ / _` | | | | |/ _` | '__|   | |   | |    | |
  / ___ \| | | | (_| | |_| | | (_| | |      | |___| |___ | |
 /_/   \_\_| |_|\__, |\__,_|_|\__,_|_|       \____|_____|___|
                |___/
    

Angular CLI: 11.2.11
Node: 16.0.0
OS: linux x64

Angular: 11.2.12
... animations, common, compiler, compiler-cli, core, forms
... platform-browser, platform-browser-dynamic, platform-server
... router
Ivy Workspace: Yes

Package                         Version
---------------------------------------------------------
@angular-devkit/architect       0.1102.11
@angular-devkit/build-angular   0.1102.11
@angular-devkit/core            11.2.11
@angular-devkit/schematics      11.2.11
@angular/cdk                    11.2.11
@angular/cli                    11.2.11
@angular/material               11.2.11
@nguniversal/builders           11.2.1
@nguniversal/express-engine     11.2.1
@schematics/angular             11.2.11
@schematics/update              0.1102.11
rxjs                            6.6.3
typescript                      4.0.3

如您所见,我正在运行nguniversal进行服务器端渲染。我还需要一个API,所以我将它构建到为预渲染的角度视图提供服务的同一个Web服务器中

现在,我有一些测试可以与
ng test
完美配合。问题是我的API没有经过测试,所以我想为它添加一些测试。假设我有这样一个模块:

从“fs”导入{readFileSync};
函数readAFile(fname:string):string{
返回readFileSync(fname,{encoding:“utf8”});
}
导出函数doNothing():void{
log(“什么都没做”);
}
我知道我不想在测试时真正地阅读文件;我不想那么做。我只想测试
doNothing
函数,它不需要从节点
fs
包调用任何东西。但是,当我尝试用这样一个简单的规范来测试它时:

从“/myapimule”导入{doNothing};
描述(“任何东西”,()=>{
它(“起作用”,()=>{
doNothing();
expect(true).toBeTrue();
});
});
当我执行此操作时,
ng test
因以下错误而崩溃:

10 05 2021 10:43:20.935:WARN [karma-server]: Passing raw CLI options to `new Server(config, done)` is deprecated. Use `parseConfig(configFilePath, cliOptions, {promiseConfig: true, throwErrors: true})` to prepare a processed `Config` instance and pass that as the `config` argument instead.
⠋ Generating browser application bundles...10 05 2021 10:43:34.350:WARN [proxy]: proxy "/base/src/assets" normalized to "/base/src/assets/"
10 05 2021 10:43:34.386:WARN [karma]: No captured browser, open http://localhost:9876/
10 05 2021 10:43:34.388:INFO [karma-server]: Karma v6.3.2 server started at http://localhost:9876/
10 05 2021 10:43:34.388:INFO [launcher]: Launching browsers Chrome with concurrency unlimited
10 05 2021 10:43:34.392:INFO [launcher]: Starting browser Chrome
✔ Browser application bundle generation complete.




Error: Module not found: Error: Can't resolve 'fs' in '/path/to/directory/containing/my/api/module/'


10 05 2021 10:43:41.443:ERROR [karma-server]: UnhandledRejection: Error: ENOENT: no such file or directory, stat '/home/ocket8888/.steampath'
10 05 2021 10:43:41.443:ERROR [karma-server]: [Error: ENOENT: no such file or directory, stat '/home/ocket8888/.steampath'] {
  errno: -2,
  code: 'ENOENT',
  syscall: 'stat',
  path: '/home/ocket8888/.steampath'
}
我也不知道为什么它关心我的Steam文件,或者项目目录之外的任何东西,但这似乎与问题无关

如何为Angular Universal编写测试,以测试需要导入节点库的服务器端代码