2016-02-15 89 views
0

我需要在一套套件之間共享測試代碼,但問題是我不知道如何在單獨文件中定義測試用例,因此每個其他測試套件都可以使用相同的測試套件測試用例。帶有Ruby和Minitest的Webdriver。在測試套件之間共享測試用例代碼

這是我的文件樣本:

test_api.rb:

require_relative 'test_helper' 
require 'rubygems' 
require 'minitest/spec' 
require 'minitest/autorun' 
#require 'minitest/hell' 
require 'uri' 
require 'net/http' 
require 'mysql2' 
require 'json' 
require 'digest/sha1' 
require_relative 'cases_api_shared.rb' 

class API_pc_qubit 
    #parallelize_me! 
    def setup 

     ### DEFINITIONS 

     ### URL 
     ENV['ws_url'] = 'http://.../' 

     ### DATA DEFINITION (USERNAME, PASSWORD, ETC) 
     ENV['username'] = 'user' 
     ENV['password'] = 'pass' 

     ### DEVICE = PC 
     ENV['APK_ID'] = "1" 
     ENV['APK_SECRET'] = "secret" 
    end 

    def test_user_create 

     # User registration test case 

     case_user_create 
    end 

    def test_user_login 

     # User login test case 

     case_user_login 
    end 

    def test_content_search 

     # Search for content test case 

     case_content_search 
    end 

    def test_utils_channels 

     # channels test case 

     case_utils_channels 
    end 

    def test_content_list 

     # Content list case 

     case_content_list 
    end 

    def test_user_modify 

     # Change user data test case 

     case_user_modify 
    end 

    def test_user_change_suscription 

     # Change user suscription test case 

     case_user_change_suscription 
    end 

    def test_user_favorite 

     # User profiles test case 

     case_user_favorite 
    end 

    def test_commercial_buyandplay 

     # Change user login password test case 

     case_commercial_buyandplay 
    end 

    #def test_content_status 
    # 
    # # Test content status currenttime test case 
    # 
    # case_content_status 
    #end 

    def teardown 

    end 

end 

這是cases_api_share.rb文件的樣本:

require_relative 'obj_api_shared.rb' 

def case_user_create 

    # User registration test case 

    case code... 
end 

def case_user_login 

    # User login test case 

    another test code... 
end 

而且但是當我運行的套件,它沒有運行'cases_api_share'中的代碼:

ruby tests/test_api.rb 
Started with run options --seed 30622 


Finished in 0.00055s 
0 tests, 0 assertions, 0 failures, 0 errors, 0 skips 
+0

我敢肯定,相關的代碼不存在問題(行593)......另外,在一種嚴重依賴約定而不是配置的語言中,我建議你去('ApiObject'而不是'Api_object') –

+0

@UriAgassi感謝您的評論,我已經更新了問題的當前狀態。謝謝! –

+0

...你沒有擴展'MiniTest :: Unit :: TestCase' ... –

回答

1

這可能是重複的。見here。 基於此,這裏是一個例子。

如果您想分組測試,有一個簡單的方法,只需在測試文件中使用自動運行並需要套裝中的測試文件。

#suit1.rb 
require './test1.rb' 

#suit2.rb 
require './test1.rb' 
require './test2.rb' 

#test1.rb 
require 'minitest/autorun' 
class TestOne < MiniTest::Unit::TestCase 
    def test_one 
    assert_equal 1, 1 
    end 
end 

#test2.rb 
require 'minitest/autorun' 
class TestTwo < MiniTest::Unit::TestCase 
    def test_two 
    assert_equal 2, 2 
    end 
end 

可以運行西裝或單獨每個測試:

ruby suit1.rb 
ruby suit2.rb 
ruby test1.rb 
ruby test2.rb 

你可以得到示例代碼here

+0

在這些例子中,你如何添加「def setup」和「def teardown」?這樣我可以在每個測試用例之前只有一個設置塊運行?因爲在我的例子中,我只有一個類用於整個測試套件,但在這個例子中,每個測試用例都有一個Class。我不明白如何在這些例子中添加它們。提前致謝! –

+0

而且,如果我需要爲每個測試用例設置一個「設置」和「拆卸」方法,我怎樣才能在很多測試用例之間共享它們的代碼? –

相關問題