Current problems with Rails tests and the CI build

Hi, all,

A bit of nagging about tests. I still cannot include the following things in the continuous integration loop, because their tests do not pass:

  • AR with SQLite
  • AR with SQLite3
  • Railties

Things that are included in the CI build by now:

  • ActiveSupport
  • ActiveRecord with MySQL 5
  • ActiveRecord with Postgres 8
  • ActiveResource
  • ActionPack
  • ActionMailer

Alex

Hi Alex,

Great work on CC.rb. Lovely stuff!

A bit of nagging about tests. I still cannot include the following things in the continuous integration loop, because their tests do not pass:

* AR with SQLite * AR with SQLite3

The patch I submitted with ticket #7981 [1] reduces the number of failures and errors of these AR tests by half. I'll be submitting patches to fix the remaining handful of failures within a week or two, so you should be able to hook them up fairly soon.

* ActiveSupport * ActiveRecord with MySQL 5 * ActiveRecord with Postgres 8 * ActiveResource * ActionPack * ActionMailer

I wonder -- when I run the current ActiveRecord test suite on MySQL 5 or PostgreSQL 8 locally on an freshly initialized database, I get two (three?) failures on each of them. The same patch fixes these failures, but I've been wondering why this wasn't picked up on the CI build.

The patch simply includes two fixtures that were missing, and so I've been musing that the CI build isn't picking up the failures because those fixtures are still lingering in the CI databases from earlier revisions. It's either that or I've got an issue on my end.

Can anyone confirm if it's the CI build or just me?

- Roderick

[1] http://dev.rubyonrails.org/ticket/7981

activerecortd/test/aaa_create_tables_test.rb is running before everything else (because Unit::Test sorts test classes alphabetically) and it recreates every table in the test database. So, as long as drop and create scripts include all tables used in tests, nothing lingers in the CI databases from a previous build.

Besides, I don't get any errors from "rake test_mysql" and "rake test_sqlite3"on fresh, empty databases with or without the patch, anyway.

Listing all required fixtures in every test, so that the test can be executed all by itself, is still the right thing to do.