db:fixtures:loadを使えばseed-fuなどを使った場合に起きるseedデータとテストデータの二度書きの手間無くなります。
しかし、paperclipで画像を保存してる時など、fixturesからは読み込めないものを保存している場合に対応できません。
僕は下記のようにして解決しています。
rakeタスクを書く
db:image:loadという画像をアップするtaskを書く。
# lib/tasks/fixtures.rake:
namespace :db do
  namespace :images do
    desc "Upload images."
    task load: :"db:fixtures:load" do
      User.all.each do |user|
        path = Rails.root.join("test", "fixtures", "files", "users", "avatars", "#{user.name}.jpg")
        user.update!(avatar: open(path)) if File.exist?(path)
      end
    end
  end
end
db:fixtures:loadの後に実行する
# lib/tasks/fixtures.rake:
...
Rake::Task["db:fixtures:load"].enhance do
  Rake::Task["db:images:load"].execute
end
これでrails db:fixtures:loadすればその後で画像も入ります。
