Я создал настраиваемую отладку атрибутов, и понял, что он вызван так много раз, даже я запускаю только один тест. Похоже, она вызвана для атрибутов для всех тестов:Конструктор атрибутов Nunit Action вызывается несколько раз
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class |
AttributeTargets.Interface | AttributeTargets.Assembly,
AllowMultiple = true)]
public class DisplayModeAttribute : Attribute, ITestAction
{
private readonly string screenSize;
public DisplayModeAttribute(string screenSize)
{
this.screenSize = screenSize;
}
public void BeforeTest(TestDetails details)
{
PageFactory.SetWindowSize(screenSize);
}
public void AfterTest(TestDetails details)
{
}
public ActionTargets Targets
{
get { return ActionTargets.Test | ActionTargets.Suite; }
}
}
У меня есть три испытания, которые используют этот атрибут с маленькими, большими значениями Xsmall в
[DisplayMode("small")]
Когда я отлаживать тест я заметил, что атрибут конструктор вызываются со всеми значениями (малыми, большими, xsmall) каждый раз много (около 40!). И для окончательного вызова он устанавливает значение с правильным значением, например «small»
Проверка стека вызовов Я не вижу, чтобы он вызывался кем.
Существует пост объяснения, когда пользовательский атрибут конструктора пробегов, основанные на этом мой конструктор должен вызываться 3 раза (хотя они являются одними и теми же типами атрибутов с разными аргументами). Но в моем случае конструктор получает вызов 40 раз (примерно) http://stackoverflow.com/questions/1168535/when-is-a-custom-attributes-constructor-run – shiva
Где вы добавляете атрибут? – Ben