2012-04-02 97 views
2

我正在使用rake任務來運行我的應用程序的測試套件。
我可以看到,當我啓動任務它運行的命令如何找到導致rake測試任務終止的文件/測試?

ruby -I"lib:test" -I"[...]/lib" "[...]/lib/rake/rake_test_loader.rb" "vendor/plugins/shop/test/**/*_test.rb" 

哪裏[...]的路徑在我的寶石耙寶石。

當我運行的任務,我得到了一些警告和一些.這意味着一些測試通過,但我最終terminated

登錄例如:

...................................... 7431 Terminated 

注意,7431是PID。

我找不到任何有關此案例的信息,詳細信息或跟蹤選項不能幫助我找出我的測試套件損壞的位置。

有沒有人知道我能做些什麼來解決這個問題?

回答

0

我不知道,是什麼過程創建了「終止」 - 消息,但你可以嘗試以下方法:

添加

def setup 
    puts "Start test #{self.__name__}" 
    STDOUT.flush 
end 
def teardown 
    puts "Finished test #{self.__name__}" 
    STDOUT.flush 
end 

您的所有測試。

例子:

require 'test/unit' 

class Mytest < Test::Unit::TestCase 
    def test_1 
    assert_equal(1,1) 
    end 
    def test_2 
    assert_equal(1,1) 
    exit 1 ##stops the execution 
    end 
    def test_3 
    assert_equal(1,1) 
    end 
end 

結果

Loaded suite test 
Started 
.>Exit code: 1 

停止測試,你看不出。我希望這與你的「終止」消息類似。

現在添加一些代碼:

require 'test/unit' 

class Mytest < Test::Unit::TestCase 
    def setup 
    puts "Start test #{self.__name__}" 
    STDOUT.flush 
    end 
    def teardown 
    puts "Finished test #{self.__name__}" 
    STDOUT.flush 
    end 
    def test_1 
    assert_equal(1,1) 
    end 
    def test_2 
    assert_equal(1,1) 
    exit 1 ##stops the execution 
    end 
    def test_3 
    assert_equal(1,1) 
    end 
end 

這導致:

Loaded suite test 
Started 
Start test test_1 
Finished test test_1 
.Start test test_2 
Finished test test_2 

最後提到test_2是一個有問題的。

您也可以將setupteardown添加到每個TestCase中(但是如果您有自己的定義,則不會包含測試代碼)。

require 'test/unit' 

class Test::Unit::TestCase 
    def setup 
    puts "Start test #{self.__name__}" 
    STDOUT.flush 
    end 
    def teardown 
    puts "Finished test #{self.__name__}" 
    STDOUT.flush 
    end 
end 

不要忘記刪除代碼 - 它只是確定問題的可能性。