=====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}}