2011-03-18 82 views
12

是否有可能具有兩個步驟定義類,首先在一個名稱空間/項目中,而另一個在另一箇中? 我有這樣的:Specflow步驟定義類在不同的項目中

我的測試項目,我運行: 命名空間:ABZ.ExcelTest 類名:ABZ.ExcelTest.ExcelStepDefinition

我的其他項目,這是測試邏輯: 命名空間:ABZ。 OfficeAddInTestLogic 類名稱:ABZ.OfficeAddInTestLogic.StepDefinition

我有[綁定]在我的兩個類屬性,但是這一次是不是在測試項目 (ABZ.OfficeAddInTestLogic.StepDefinition)無法找到,我得到NUnit的錯誤:

找不到與該步驟匹配的步驟定義。使用下面的代碼來創建一個: ...

是否有可能在不同的項目中有2個步驟定義類?

回答

19

是的,它是 - 該功能被稱爲外部步驟(見https://github.com/techtalk/SpecFlow/blob/master/Tests/FeatureTests/ExternalSteps/ExternalSteps.feature

什麼你可能缺少的是一個app.config設置是這樣的:

<specFlow> 
<stepAssemblies> 
    <stepAssembly assembly="ExternalStepsCS" /> 
</stepAssemblies> 

那會看在這種情況下,在外部程序集中稱爲ExternalStepsCS。

+0

是的,你說得對,我沒有使用配置文件來配置specflow。謝謝你。 :) – Vajda 2011-03-18 21:47:58

1

我經常會有一個「測試助手」庫,其中包含多個測試項目共享的代碼。我將在這個共享庫中開設一個課程,我們稱之爲CucumberBase。然後,在我的實際測試項目中,我有一個這樣的類:

[Binding] 
public class SomeFeatureSpecs : CucumberBase 
{ 
    ... 
} 

每一個公共CucumberBase方法被標記爲[Given()]/[When()]/[Then()] /等。在我的實際測試項目中,在SomeFeatureSpecs類中正確拾取。這讓我可以重寫和擴展通用功能。