2017-08-27 1 views
0

J'ai une application AngularJS 1.5.11 où RequireJS 2.2.0 est utilisé partout. Des tests unitaires sont nécessaires. Et je ne peux même pas exécuter un test fictif. S'il vous plaît donnez votre avis.Test de zéro exécuté par Karma (AngularJS, RequireJS)

L'erreur:

PhantomJS 2.1.1 (Linux 0.0.0): Executed 0 of 0 ERROR (0.044 secs/0 secs)

sortie détaillée du niveau de débogage de commande karma start --browsers PhantomJS_custom --log-level debug: https://gist.github.com/sergibondarenko/1120d211aa2265b76669cd831495a6c1

Test: app/controllers/__ essais __/loginController.spec.js

define('loginController', [], function() { 
    describe('loginController', function() { 
    it('dymmy test', function() { 
     expect(true).toBe(false); 
    }); 
    }); 
}); 

Karma config: https://gist.github.com/sergibondarenko/4b305341faa24883cb90e6f8f7490d74

Test-principale: https://gist.github.com/sergibondarenko/6aa25bf71bfadf39883a59d7cda57a65

dépendances Dev:

:~/dev/qxip/hepic$ grep -rn devD package.json -A 9 
20: "devDependencies": { 
21- "jasmine": "^2.8.0", 
22- "jasmine-core": "^2.4.1", 
23- "karma": "^0.13.22", 
24- "karma-browserify": "^5.1.1", 
25- "karma-jasmine": "^0.3.8", 
26- "karma-phantomjs-launcher": "^1.0.4", 
27- "protractor": "^4.0.9", 
28- "watchify": "^3.9.0" 
29- }, 

La structure de l'application est ci-dessous. Certaines bibliothèques sont au node_modules, d'autres sont dans le dossier lib.

[email protected]:~/dev$ tree -L 1 theapp 
theapp 
├── app 
├── css 
├── font-awesome 
├── fonts 
├── img 
├── index.html 
├── karma.conf.js 
├── lang 
├── lib 
├── node_modules 
├── package.json 
├── README.md 
├── resources 
├── scripts 
├── share 
├── templates 
├── test-main.js 
├── tests 
└── widgets 

S'il vous plaît dites-moi si vous avez besoin de plus d'informations.

+0

D'où exécutez-vous vos tests? Aussi, pouvez-vous lister le chemin complet de test-main.js au lieu du nom de fichier dans karma.conf.js? – 82Tuskers

+0

@ 82Tuskers J'exécute la commande 'karma start --browsers PhantomJS_custom --log-level debug' depuis le dossier racine de mon application -' ~/dev/theapp'. Le chemin complet pour le test-main.js est '~/dev/theapp/test-main.js', veuillez regarder la structure de l'application ci-dessus. – trex

+0

pouvez-vous ajouter un dossier sous l'application appelée test; c'est '/ app/test /' et ajoutez votre fichier de test en tant que 'test-file.spec.js'. Faites-moi savoir si cela fonctionne. – 82Tuskers

Répondre

0

Dans votre karma.conf.js ensemble ceci:

browsers: ['PhantomJS', 'PhantomJS_custom'], 

    // you can define custom flags 
    customLaunchers: { 
     'PhantomJS_custom': { 
     base: 'PhantomJS', 
     options: { 
      windowName: 'my-window', 
      settings: { 
      webSecurityEnabled: false 
      }, 
     }, 
     flags: ['--load-images=true'], 
     debug: true 
     } 
    }, 

    phantomjsLauncher: { 
     // Have phantomjs exit if a ResourceError is encountered (useful if karma exits without killing phantom) 
     exitOnResourceError: true 
    } 

supposant donc que vous avez votre fichier karma.conf.js dans la racine, le même niveau où votre app sous-dossier est et votre test-main.js est, exécutez vos tests par:

karma start karma.conf.js 
+0

mais j'ai déjà cette partie, regardez la deuxième partie ci-dessus https://gist.github.com/sergibondarenko/4b305341faa24883cb90e6f8f7490d74#file-karma-conf-js-L60 – trex

+0

alors qu'en est-il de la structure de vos fichiers? Est-ce que c'est comme expliqué? – quirimmo

+0

oui, c'est correct, c'est comme expliqué – trex