非常相似,這樣的問題:Easy way to detect whether rspec or cucumber is running? 如何檢測是否紅寶石運行黃瓜測試
我怎麼能在Ruby中發現,我下黃瓜運行?
我有一個共同的代碼項目,這將需要一些路徑變量,如果正在使用的代碼是黃瓜項目或標準的腳本改變。我正在嘗試涵蓋相對路徑問題。當在黃瓜結構下文件結構不同時,require_relative'../../{filename}'將失敗。它需要回溯兩個級別,如:'../../../../{filename}'。
共同的項目:C:\ RubyProjects \共同項目\共同
build_properties.rb
黃瓜項目:C:\ RubyProjects \程序\ 2017年\功能\ step_definitions
test_rest.rb
require_relative './../../../RubyProjects/common-project/common' class Verify include Common build_properties_from_yaml('', '') end
一些其他的項目:C:\ RubyProjects \程序\ 2017年\
File.rb
require_relative './../../RubyProjects/common-project/common' class RunCode include Common build_properties_from_yaml('', '') end
隨着情況「utils」文件夾,它位於黃瓜的features文件夾下,但沒有這樣的文件夾在沒有黃瓜的其他項目中。這就是拋出代碼,我想在yaml加載過程中檢查黃瓜。
能否請您解釋一下爲什麼你的代碼需要知道,如果它是在測試環境中運行?而如何你想改變你的代碼的行爲,因爲如果你的代碼需要知道,如果它在測試或其他環境中運行我會認爲這是一個代碼味道。爲什麼測試代碼如果代碼在測試中的工作方式與其他環境中的不同?這聽起來像一個[XY問題(https://meta.stackexchange.com/a/66378/284887)給我。 – spickermann
你可能是正確的,這很可能是我的錯誤編碼習慣。我正在嘗試解決的一個問題是將一個項目的通用代碼包含到多個其他項目中。黃瓜有一個特定的文件結構,我試圖讓代碼知道並加載文件相對正確。 –
也許這只是我,但是爲什麼在測試環境中運行時,從源文件到要更改文件的相對路徑?你想要一個不同的文件嗎?你介意添加一個你試圖實現的簡單例子嗎? – spickermann