=====Angular===== ====Tests unitaires==== ===Erreurs=== * ''error NG8001: 'xxx' is not a known element'' 1. If 'xxx' is an Angular component, then verify that it is part of this module. 2. If 'xxx' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message. Si le problème existe uniquement lors des ''ng test'', c'est qu'il s'agit d'un composant enfant du composant à tester. On peut soit donc désactiver cet avertissement en ajoutant ''schemas: [NO_ERRORS_SCHEMA]'' lors du test, import { NO_ERRORS_SCHEMA } from '@angular/core'; TestBed.configureTestingModule({ declarations: [YourComponent], schemas: [NO_ERRORS_SCHEMA] }).compileComponents(); Soit utiliser un stub et le déclarer dans ''TestBed.configureTestingModule''. @Component({selector: 'xxx', template: ''}) class MeyerhofCalcComponent { } await TestBed.configureTestingModule({ declarations: [MainComponent, MeyerhofCalcStubComponent] }).compileComponents(); Il serait aussi possible d'importer le composant mais dans ce cas, on quitte les tests unitaires pour passer aux tests fonctionnels. TestBed.configureTestingModule({ imports: [ AppModule ], }).compileComponents(); [[https://stackoverflow.com/questions/55966510/element-not-known-error-in-karma-when-ran-ng-test|Element not known error in Karma when ran “ng test”]] {{ :lang:angular:projet:angular_-_element_not_known_error_in_karma_when_ran_ng_test_-_stack_overflow_2021-08-09_10_25_05_.html |Archive du 03/05/2019 le 09/08/2021}} [[https://angular.io/guide/testing-components-scenarios|Component testing scenarios]] {{ :lang:angular:projet:angular_-_component_testing_scenarios_2021-08-09_10_36_16_.html |Archive du v12.1.5 le 09/08/2021}} =====Karma===== ====Configuration==== ===Ajout des assets=== On commence par les ajouter à les fichiers à ajouter: module.exports = function (config) { config.set({ files: [ {pattern: 'assets/*.wasm', watched: true, included: false, served: true, nocache: true} ], proxies: { '/assets/':'/base/assets/' }, }); }; Les fichiers ajoutées seront disponibles à l'adresse [[http://localhost:9876/base]]. Le proxy va rediriger les requêtes [[http://localhost:9876/assets]] vers [[http://localhost:9876/base/assets]]. [[https://github.com/angular/angular-cli/issues/14593|Karma not serving assets in angular 8]] {{ :lang:angular:test:karma_not_serving_assets_in_angular_8_issue_14593_angular_angular-cli_2021-08-09_11_05_05_.html |Archive du 30/05/2019 le 09/08/2021}} [[https://karma-runner.github.io/6.3/config/files.html|Karma - Files]] {{ :lang:angular:test:karma_-_files_2021-08-09_11_08_22_.html |Archive du v6.3 le 09/08/2021}} =====Protractor===== Protractor permet de faire des tests en e2e (end to end) avec des scripts en Angular. Après de nombreuses heures à essayer de le configurer, je n'ai finalement pas réussi. Ne pas utiliser. Un certificat de décès existe depuis le [[https://github.com/angular/protractor/issues/5502|5 avril 2021]] {{ :lang:angular:test:future_of_angular_e2e_plans_for_protractor_issue_5502_angular_protractor_2021-08-20_22_09_30_.html |Archive du 05/04/2021 le 20/08/2021}}