중요한 문제 해결 후, rake spec
rspec을 직접 (예 : 사양의 하위 집합에서) 실행하기 전에 한 번 실행해야한다는 것을 알게 되었습니다 (control-c로 중단 할 수 있음). 우리는 Rails 3.0.7과 RSpec 2.5.0을 실행하고 있습니다.
분명히, rake는 몇 가지 중요한 데이터베이스 설정 작업 / 코드를 실행하고 있습니다 (루트 레벨 레일 Rakefile 및 가능하면 다른 위치에 사용자 정의 코드가 있음).
실행하지 않고 레이크 테스트 데이터베이스 설정 작업 / 코드를 rake spec
어떻게 실행할 수 있습니까?
파일의 하위 집합에서 rspec을 실행할 수있는 것 외에도 specjour 를 사용하여 사양을 여러 코어에 분산하고 있지만 (아직 LAN을 통해 분산하는 데 성공하지 못함) rspec을 실행할 때와 동일한 동작을 봅니다. 직접 : rake spec
specjour가 작동하기 전에 각 테스트 데이터베이스 (2 개의 코어 가정) 에서 실행해야 합니다.
rake spec TEST_ENV_NUMBER=1
control-c (after tests start)
rake spec TEST_ENV_NUMBER=2
control-c (after tests start)
specjour
참고 : 내 config / database.yml에는 다음과 같은 테스트 항목이 있습니다 (병렬 테스트 gem의 경우 일반적 임).
test:
adapter: postgresql
encoding: unicode
database: test<%=ENV['TEST_ENV_NUMBER']%>
username: user
password:
parallel_tests 는 데이터베이스를 올바르게 설정 한 것처럼 보이지만 많은 사양이 실패합니다.
실행 specjour prepare
하면 Postgres가 데이터베이스를 찾을 수 없다는 오류를 기록하지만 테이블없이 생성 된다는 점도 언급해야합니다 . 후속 실행에서는 오류가 기록되지 않지만 테이블도 생성되지 않습니다. 내 전체 문제가 단순히에서 버그 prepare
일 수 있으므로 github에보고했습니다.
Specjour::Configuration.prepare
.specjour / hooks.rb 를 설정하여 각 specjour 테스트 데이터베이스에서 임의의 코드를 실행할 수 있다고 생각하므로 실행 해야하는 레이크 작업이나 다른 코드가 있으면 작동 할 수 있습니다.