diff --git a/.travis.yml b/.travis.yml
index b7c950475dab713e60db3061366bc73be9ecd75d..82966daed0f8a428bbd6769773ef485836f98f49 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -15,10 +15,20 @@ rvm:
 gemfile:
   - Gemfile
   - gemfiles/Gemfile.ruby1.9.3
+  - gemfiles/Gemfile.rails3.2
+  - gemfiles/Gemfile.rails4.1
 matrix:
   exclude:
     - rvm: 1.9.3
       gemfile: Gemfile
+    - rvm: 1.9.3
+      gemfile: gemfiles/Gemfile.rails3.2
+    - rvm: 1.9.3
+      gemfile: gemfiles/Gemfile.rails4.1
+    - env: DB=
+      gemfile: gemfiles/Gemfile.rails3.2
+    - env: DB=
+      gemfile: gemfiles/Gemfile.rails4.1
     - rvm: 2.0.0
       gemfile: gemfiles/Gemfile.ruby1.9.3
     - rvm: 2.1.2
diff --git a/gemfiles/Gemfile.rails3.2 b/gemfiles/Gemfile.rails3.2
new file mode 100644
index 0000000000000000000000000000000000000000..c211765651e16d7c2cdc6d8c67c500b355ab4eda
--- /dev/null
+++ b/gemfiles/Gemfile.rails3.2
@@ -0,0 +1,38 @@
+source "https://rubygems.org"
+
+group :development, :test do
+  gem 'rake'
+  gem 'mongoid', '2.6.0'
+  gem 'bson_ext', platforms: :ruby
+  gem 'geoip'
+  gem 'rubyzip'
+  gem 'rails', '>= 3.2'
+  gem 'test-unit' # needed for Ruby >=2.2.0
+
+  gem 'byebug', platforms: :mri
+
+  platforms :jruby do
+    gem 'jruby-openssl'
+    gem 'jgeoip'
+  end
+
+  platforms :rbx do
+    gem 'rubysl', '~> 2.0'
+    gem 'rubysl-test-unit'
+  end
+end
+
+group :test do
+  gem 'sqlite3', :platform => [:ruby, :mswin, :mingw]
+
+  platforms :ruby do
+    gem 'pg'
+    gem 'mysql2'
+  end
+
+  platforms :jruby do
+    gem 'jdbc-mysql'
+    gem 'jdbc-sqlite3'
+    gem 'activerecord-jdbcpostgresql-adapter'
+  end
+end
\ No newline at end of file
diff --git a/gemfiles/Gemfile.rails4.1 b/gemfiles/Gemfile.rails4.1
new file mode 100644
index 0000000000000000000000000000000000000000..1b24de1ad928037bd84ab8dc228cbf16fb505162
--- /dev/null
+++ b/gemfiles/Gemfile.rails4.1
@@ -0,0 +1,38 @@
+source "https://rubygems.org"
+
+group :development, :test do
+  gem 'rake'
+  gem 'mongoid', '4.0.2'
+  gem 'bson_ext', platforms: :ruby
+  gem 'geoip'
+  gem 'rubyzip'
+  gem 'rails', '>= 4.1'
+  gem 'test-unit' # needed for Ruby >=2.2.0
+
+  gem 'byebug', platforms: :mri
+
+  platforms :jruby do
+    gem 'jruby-openssl'
+    gem 'jgeoip'
+  end
+
+  platforms :rbx do
+    gem 'rubysl', '~> 2.0'
+    gem 'rubysl-test-unit'
+  end
+end
+
+group :test do
+  gem 'sqlite3', :platform => [:ruby, :mswin, :mingw]
+
+  platforms :ruby do
+    gem 'pg'
+    gem 'mysql2'
+  end
+
+  platforms :jruby do
+    gem 'jdbc-mysql'
+    gem 'jdbc-sqlite3'
+    gem 'activerecord-jdbcpostgresql-adapter'
+  end
+end
\ No newline at end of file
diff --git a/test/unit/logger_test.rb b/test/unit/logger_test.rb
index 028374cbf81708f7fc54e8bff542091d361aa34f..01efefa117f332281d597d82393b4f601035fda1 100644
--- a/test/unit/logger_test.rb
+++ b/test/unit/logger_test.rb
@@ -18,7 +18,7 @@ class LoggerTest < GeocoderTestCase
 
   def test_set_logger_logs
     assert_equal nil, Geocoder.log(:warn, "should log")
-    assert_equal "should log\n", @tempfile.read
+    assert_match /should log\n$/, @tempfile.read
   end
 
   def test_logger_does_not_log_severity_too_low
diff --git a/test/unit/mongoid_test.rb b/test/unit/mongoid_test.rb
index 63d1b57542ab6ae3d88a8ed583988c94db6b4297..11a34dc6af878e0ecedb99fffbbc03246aa3435f 100644
--- a/test/unit/mongoid_test.rb
+++ b/test/unit/mongoid_test.rb
@@ -26,7 +26,11 @@ class MongoidTest < GeocoderTestCase
   end
 
   def test_index_is_skipped_if_skip_option_flag
-    result = PlaceUsingMongoidWithoutIndex.index_options.keys.flatten[0] == :coordinates
+    if PlaceUsingMongoidWithoutIndex.respond_to?(:index_options)
+      result = PlaceUsingMongoidWithoutIndex.index_options.keys.flatten[0] == :coordinates
+    else
+      result = PlaceUsingMongoidWithoutIndex.index_specifications[0] == :coordinates
+    end
     assert !result
   end
 end