2011-12-12 3 views
0

저는 Postgres 9.1, Rails 3.1.3 및 Ruby 1.9.3을 사용하고 있습니다.My Rails 콘솔 세션이 잘못되어 이제 rspec 테스트가 실패합니다.

rails console --sandbox에서 몇 가지 시도를 한 다음 rails console으로 모험을갔습니다. Employee.create!(a whole lot of data)을 입력 할 때 몇 가지 오류가 발생했습니다. 그 중 대부분은 not null 제약 조건과 관련이 있습니다.

신속하게 콘솔을 빠져 나와 pgadmin3을 사용하여 데이터베이스를 변경했는지 확인했지만 데이터가 없으므로 테스트가 계속 진행될 것이라고 확신했습니다. 아쉽게도 내 rspec 테스트가 실패하고 충돌하는 데이터가 어디에 있는지 잘 모릅니다.

이 글을 읽는 누군가가 내 콘솔 세션에 입력 한 항목을 어떻게 취소 할 수 있는지에 대한 아이디어 나 제안이 있습니다. 이는 불행히도 --sandbox 세션이 아닙니다.

나는 lsof | grep 3000을 통해 발견 된 팬텀 서버를 죽일 수있었습니다.

도움이 될만한 제안이나 제안을 해주셔서 감사합니다.

답변

0

콘솔에서 재생할 때, 개발 환경에 있습니다. 테스트 환경에서 실행되는 테스트와 충돌하는 방식이 있다고 생각하지 않습니다. 또한 테스트를 실행할 때마다 테스트 데이터베이스가 지워지기 때문에 테스트가 기존 데이터에 의존해서는 안됩니다.

rake db:test:prepare을 실행하고 테스트를 실행하십시오.

+0

감사합니다. 로빈, 내가 자라서 너와 같은 생각을하고 싶다. – hlogoma

+0

;)이 경우에는 추론에 관한 것이 아니기 때문에 약간의 경험이 필요합니다. :) – Robin

관련 문제