Yukihiro "Matz" Matsumoto

Often people, especially computer engineers, focus on the machines. They think, "By doing this, the machine will run fast. By doing this, the machine will run more effectively. By doing this, the machine will something something something." They are focusing on machines. But in fact we need to focus on humans, on how humans care about doing programming or operating the application of the machines. We are the masters. They are the slaves.
Yukihiro "Matz" Matsumoto, Creator of Ruby

Kamis, 09 Oktober 2014

Melakukan Unit Testing Dengan RSpec Pada Sublime Text

Tips ini memberikan langkah-langkah untuk anda yang ingin melakukan unit testing menggunakan RSpec untuk program Ruby anda secara langsung melalui Sublime Text. Sublime Text secara default tidak mendukung eksekusi unit test dengan RSpec menggunakan command build.



Untuk mengatasi hal ini, kita dapat menggunakan package manager pada Sublime Text dengan menginstall package RubyTest. Untuk anda yang belum menginstall package manager pada Sublime Text anda dapat mengikuti langkah berikut:

  1. Masuk pada console Sublime Text melalui View > Show Console
  2. Setelah boks console muncul, paste kode berikut ini.
  3. Untuk anda pengguna Sublime Text 2. import urllib2,os,hashlib; h = '7183a2d3e96f11eeadd761d777e62404' + 'e330c659d4bb41d3bdf022e94cab3cd0'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); os.makedirs( ipp ) if not os.path.exists(ipp) else None; urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler()) ); by = urllib2.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); open( os.path.join( ipp, pf), 'wb' ).write(by) if dh == h else None; print('Error validating download (got %s instead of %s), please try manual install' % (dh, h) if dh != h else 'Please restart Sublime Text to finish installation')
  4. Untuk anda pengguna Sublime Text 3. import urllib.request,os,hashlib; h = '7183a2d3e96f11eeadd761d777e62404' + 'e330c659d4bb41d3bdf022e94cab3cd0'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)
  5. Maka package control akan didownload dan diinstal secara otomatis ke dalam Sublime Text.
Langkah berikut yang akan kita lakukan adalah menginstall package RubyTest menggunakan package manager:

  1. Masuk ke Tool > Command Pallette
  2. Setelah kotak muncul, ketik ke dalam input text field, Package Control : Install Package. Text field akan memberikan auto complete suggestion.
  3. Tunggu Beberapa saat, anda dapat melihat progress pada panel di bagian kiri bawah.
  4. Setelah koneksi selesai, maka akan muncul daftar package yang dapat anda install
  5. Ketik RubyTest dan lakukan installasi
  6. Setelah installasi selesai, restart Sublime Text anda.
  7. Untuk melakukan test secara langsung menggunakan RSpec, anda dapat menggunakan shortcut  ⌘+Shift+R.

Untuk anda yang menggunakan RBENV dan RVM untuk memanage environment Ruby pada sistem operasi anda. Anda perlu melakukan setting terlebih dahulu dengan mengikuti langkah berikut:

  1. Masuk ke Preference > Browse Packages
  2. Masuk ke folder User
  3. Buat file baru dengan nama file RubyTest.sublime-settings, anda dapat melakukannya di terminal menggunakan command $ touch RubyTest.sublime-settings 
  4. Masuk ke dalam file tersebut, dan copy setting berikut.
{
  "erb_verify_command": "erb -xT - {file_name} | ruby -c",
  "ruby_verify_command": "ruby -c {file_name}",
  "run_ruby_unit_command": "ruby -Itest {relative_path}",
  "run_single_ruby_unit_command": "ruby -Itest {relative_path} -n '{test_name}'",
  "run_cucumber_command": "cucumber {relative_path}",
  "run_single_cucumber_command": "cucumber {relative_path} -l{line_number}",
  "run_rspec_command": "rspec {relative_path}",
  // "run_single_rspec_command": "rspec {relative_path} -l{line_number}",
  "ruby_unit_folder": "test",
  "ruby_cucumber_folder": "features",
  "ruby_rspec_folder": "spec",
  "check_for_rbenv": true,
  "check_for_rvm": false,
  "check_for_bundler": false,
  "check_for_spring": false,
  "ruby_use_scratch" : false,
  "save_on_run": false,
  "ignored_directories": [".git", "vendor", "tmp"],
  "hide_panel": false,
  "before_callback": "",
  "after_callback": "",
  "theme": "Packages/RubyTest/TestConsole.hidden-tmTheme",
  "syntax": "Packages/RubyTest/TestConsole.tmLanguage"
                                                                    }
                                                                         5.  Untuk anda pengguna RBENV dapat mengubah flag menjadi true di line "check for_rbrenv" :             true"
                                                                         6.  Untuk anda pengguna RVM dapat mengubah flag menjadi true di line "check for_rvm" :                     true"






                                                                    Tidak ada komentar:

                                                                    Posting Komentar