簡體   English   中英

SimpleCov with Selenium / Rails

[英]SimpleCov with Selenium/Rails

我們有一套Selenium測試。 我想使用SimpleCov來覆蓋這些測試的服務器端覆蓋。 首先,這是一種常見的方法嗎? 我無法在SimpleCov / Selenium上找到任何東西。 也許SimpleCov通常用於單元/功能測試而不是集成?

目前的Selenium設置需要啟動一個rails服務器,而不是讓一套Selenium測試命中它。 我需要SimpleCov在rails服務器上運行,然后在套件完成后退出。

任何幫助非常感謝!

simplecov作者在這里。 無論何時啟動SimpleCov,它都會將覆蓋率分析應用於當前正在運行的進程。 因此,您需要在Rails服務器進程中啟動SimpleCov。 我建議將SimpleCov設置作為條件添加到您的Rails應用程序的config / boot.rb(在最頂部),如下所示:

# config/boot.rb
if ENV["SELENIUM"]
  require 'simplecov'
  SimpleCov.start 'rails'
end

在引導Rails測試服務器之前,請設置該環境變量。 現在,您應該在關閉測試服務器后收到覆蓋率報告。 如果要將配置選項移動到另一個目錄,請查看配置選項,以免干擾您的常規(單位/功能)覆蓋率報告。

我不確定boot.rb是不是正確的地方。 事實是,需要在應用程序中的任何其他內容之前加載SimpleCov,否則它將無法跟蹤這些文件的覆蓋范圍。 您可能需要嘗試或查看rails啟動過程以找到該位置,但由於Bundler設置是boot.rb的一部分(如果我沒記錯的話......),將上述配置放在Bundler.setup之上應該沒事的。

基本上,使用類似的設置,您甚至可以通過在服務器進程中啟動simplecov,點擊並退出服務器來獲取本地基於瀏覽器的手動測試的代碼覆蓋率,例如,如果您想知道應用程序的哪個部分是某個操作真的很感動。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM