Yooman과 Angular JS를 사용하여 E2E 테스트와 유닛 테스트를 모두 자동화하려면 어떻게 해야 합니까?
Yoman과 generator-angular를 사용해서 Angular를 관리하고 있습니다.JS 앱이지만 자동 테스트에 문제가 있습니다.
.grunt test
1번으로 하다 테스트 후에 하려면 , 「」의 「」을 합니다.Gruntfile.js
추가, e2e: 추가
karma: {
//...
e2e: {
configFile: 'karma-e2e.conf.js',
singleRun: true
}
},
가 좋다다다다를 요.입력하면grunt test
모든 테스트가 실행됩니다.큰시작, , 실행 가 발생합니다.대신 서버와 Chrome 프로세스가 계속 실행되고 테스트를 저장할 때 테스트를 다시 실행해야 합니다.
가지를 모두 .karma.conf.js
★★★★★★★★★★★★★★★★★」karma-e2e.conf.js
설정singleRun = true
를 실행하고 나서, 를 실행합니다karma start
페인으로, 1개의 단말 페인으로,karma start karma-e2e.conf.js
。 로) 하지 않는 은 기능합니다.카르마 설정의 어느 포토도 경합하지 않는 경우(디폴트에서는 경합합니다).이제 나는 Grunt를 무시하고 내 일을 하고 있다(Grunt는 일을 쉽게 해야 하기 때문에 조금 바보같다).
어쨌든, 몇 가지 변경 후(수정)-간단하게는상세하지않습니다.- 이 방법은 동작하지만 잘라내지는 않습니다.이제 2개의 다른 명령어를 실행하여 2개의 다른 단말페인을 감시해야 합니다.분명히 더 좋은 방법이 있을 거야.
하나의 명령어를 실행하여 테스트 파일을 감시하고 테스트를 적절하게 재실행하려면 어떻게 해야 합니까?
보너스 질문: 도대체 왜 이 기능이 그대로 제공되지 않는 거죠?발전기-각선 개발자가 이러한 것들을 구현하기에 충분한 시간을 갖지 못한 것에 대한 질문입니까?이제 막 Angular/Yeoman/Karma(아마도 눈치채셨겠지만)에 들어갔을 뿐인데, E2E와 유닛 테스트의 자동화가 워크플로우에 매우 중요하다고 생각하기 때문입니다.
했듯이 Phantom은 많은 수.JS에 관한 것입니다.을 처리할 수 , 할 수 .grunt test
모든 걸 시작하려고요
grunt-karma를 사용하면 편리한 애드온과 함께 카르마 옵션을 완전히 맞춤화할 수 있습니다.
문서에서:
....
다음과 같은 구성 파일의 설정을 직접 재정의할 수 있습니다.
karma: { unit: { configFile: 'karma.conf.js', runnerPort: 9999, singleRun: true, browsers: ['PhantomJS'] } }
설정 공유
대상이 여러 개인 경우 대상 간에 공통 구성 설정을 공유하는 것이 유용할 수 있습니다.Grunt-karma는 다음 옵션 속성을 사용하여 이를 지원합니다.
karma: { options: { configFile: 'karma.conf.js', runnerPort: 9999, browsers: ['Chrome', 'Firefox'] }, continuous: { singleRun: true browsers: ['PhantomJS'] }, dev: { reporters: 'dots' } }
또한 Yeoman의 생성기-각선 Gruntfile 코드를 기웃거려 사용 가능하거나 최소한 모킹할 수 있는 다른 것이 있는지 확인할 수 있습니다.
이를 통해 e2e 테스트만 실행할 수 있습니다.
grunt karma:e2e
karma.conf.files 파일(약 line:38)에서 autoWatch = false를 찾아 true로 변경합니다.
이제 grunt karma:unit을 실행하면 테스트 서버가 실행 중인 상태로 유지되며 프로젝트 파일을 변경하면 즉시 테스트가 다시 실행됩니다.
//
// test/midway/appSpec.js
//
describe("Midway: Testing Modules", function() {
describe("App Module:", function() {
var module;
before(function() {
module = angular.module("App");
});
it("should be registered", function() {
expect(module).not.to.equal(null);
});
describe("Dependencies:", function() {
var deps;
var hasModule = function(m) {
return deps.indexOf(m) >= 0;
};
before(function() {
deps = module.value('appName').requires;
});
//you can also test the module's dependencies
it("should have App.Controllers as a dependency", function() {
expect(hasModule('App.Controllers')).to.equal(true);
});
it("should have App.Directives as a dependency", function() {
expect(hasModule('App.Directives')).to.equal(true);
});
it("should have App.Filters as a dependency", function() {
expect(hasModule('App.Filters')).to.equal(true);
});
it("should have App.Routes as a dependency", function() {
expect(hasModule('App.Routes')).to.equal(true);
});
it("should have App.Services as a dependency", function() {
expect(hasModule('App.Services')).to.equal(true);
});
});
});
});
언급URL : https://stackoverflow.com/questions/16737518/how-can-i-automate-both-e2e-and-unit-tests-with-yeoman-angularjs
'programing' 카테고리의 다른 글
WooCommerce - product_id별로 제품 설명을 가져옵니다. (0) | 2023.03.06 |
---|---|
Oracle 클라이언트 설치 오류 - 경로가 너무 깁니다. (0) | 2023.03.06 |
Java에서의 XLS/CSV로의 JSON 변환 (0) | 2023.03.01 |
아바타에서 BuddyPress 활동 ID 가져오기 (0) | 2023.03.01 |
AngularJ: 모든 폼 오류 나열 (0) | 2023.03.01 |