8

rake test:functionals を SQLite3 で実行できません。次のエラーが表示されます。

rake aborted!
Permission denied - db/test.sqlite

(See full trace by running task with --trace)

私のセットアップは Windows XP です。テストは数週間前に機能していました。Rails 2.3.2、Rake 0.8.7、sqlite3-ruby 1.2.5 gem

開発に Netbeans を使用していますが、Netbeans が近い場合でも、コマンド プロンプトからテストを実行できません。

また、test.sqlite へのハンドルが開いていないことも確認しました (sysinternals タスク マネージャーを使用)。

権限を確認しましたが、問題ありません。

ファイルを削除して再作成しようとしたか、別のファイル名にコピーしようとしましたが、うまくいきませんでした。

コンピューターが起動したらすぐにコマンドを実行してみました。

どんな助けでも大歓迎です。

ありがとう

4

5 に答える 5

3

私はちょうどこの問題を抱えていました。私にとっては、テスト環境でRailsコンソールを開いたことが原因でした。セッションを閉じても、エラーは発生しなくなりました。

于 2011-09-14T16:26:46.903 に答える
2

私の側では非常によく似た動作です:Windows XP、SQLite3、Rails 2.3.4、Rake 0.8.7、Ruby 1.8.6

レーキテスト

動作します(ただし、実際に単体テストを実行しているとは思いません)

レーキテスト:ユニット

レーキテスト:汎関数

両方とも「Permissiondenied--db/ test.sqlite3」で失敗します。--traceを有効にすると、「File」という行の../rails-2.3.4/lib/task/databases.rake:370で特定のエラーが発生します。 Delete(dbfile)if File.exist?(dbfile)

だから...長い話短い...私はそれをコメントアウトしました。

これは修正ではありませんが、テストを機能させるには十分なハックでした。

于 2010-09-17T17:54:37.357 に答える
1

Cygwin で実行している場合は、データベース ファイルでこれを実行してみてください。

chmod 777 <your-files>

Cygwin は、どの権限を適用する必要があるかについて混乱する可能性があります。

はい、これらのアクセス許可がばかげていることは知っていますが、Cygwin も時々そうです...

于 2009-08-05T17:09:43.667 に答える
0

ただのパントですが、パスをに変更してみましconfig/database.ymlたか

database: db\test.sqlite3

つまり、スラッシュの代わりにバックスラッシュを使用します。または完全な DOS スタイル パスですら。問題はこれに関連している可能性があります https://rails.lighthouseapp.com/projects/8994/tickets/4153-dbcreate-cannot-open-database-for-sqlite3-on-windows-with-cygwin

于 2010-09-18T08:45:04.297 に答える