要解决"angular 7 + angular cli 7+ ng test 不起作用"的问题,可以尝试以下解决方法:
确保你的Angular项目已经正确安装了Angular 7和Angular CLI 7。可以通过运行以下命令来检查版本:
ng version
确保Angular版本为7.x.x,Angular CLI版本为7.x.x。
确保你的项目中的所有依赖项都已经正确安装。可以运行以下命令来检查和安装依赖项:
npm install
确保你的项目中包含了正确的测试配置。在angular.json文件中,检查"test"部分是否像下面这样配置:
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "src/test.ts",
"karmaConfig": "./karma.conf.js",
"polyfills": "src/polyfills.ts",
"tsConfig": "src/tsconfig.spec.json",
"assets": [
"src/favicon.ico",
"src/assets"
],
"styles": [
"src/styles.scss"
],
"scripts": []
}
}
检查你的测试文件是否正确导入了必要的依赖项。例如,如果你的测试文件中使用了HttpClient,你需要导入HttpClientTestingModule,像这样:
import { TestBed } from '@angular/core/testing';
import { HttpClientTestingModule } from '@angular/common/http/testing';
beforeEach(() => {
TestBed.configureTestingModule({
imports: [HttpClientTestingModule],
...
});
});
确保你的测试文件中的测试用例是正确编写的。确保你的测试用例使用正确的断言和期望值。例如,使用expect断言来验证结果是否符合预期:
expect(result).toBe(expected);
如果你的测试用例中使用了异步操作(例如,使用了HttpClient),确保你使用了async和await来正确处理异步操作。例如:
it('should get data asynchronously', async () => {
const result = await myService.getData().toPromise();
expect(result).toEqual(expectedData);
});
最后,尝试重新运行测试命令:
ng test
如果上述方法仍然无法解决问题,可以尝试查看控制台输出或者错误信息,以便更好地了解问题的具体原因,并进一步调试和解决它。