Вы можете добавить пользовательские поля в унаследованный процесс. Вы можете определить пул допустимых значений для нового поля. Шаги для настройки типов рабочих элементов здесь .
Я не уверен, что эта функция возможна в MsTest из поля как в других средах тестирования (например, MbUnit).
, Если я должен использовать MsTest, тогда я решаю это путем определения абстрактного класса TestBase с [TestInitialize] атрибут и каждый тест, которому нужно это поведение, происходит из этого базового класса. В Вашем случае каждый тестовый класс в Вашем блоке должен наследоваться этой основе...
И существует, вероятно, другое решение, можно сделать пользовательский тестовый атрибут - но я не попробовал это еще...:)
[TestInitialize()]
то, в чем Вы нуждаетесь.
private string dir;
[TestInitialize()]
public void Startup()
{
dir = Path.GetTempFileName();
MakeDirectory(ssDir);
}
[TestCleanup()]
public void Cleanup()
{
ss = null;
Directory.SetCurrentDirectory(Path.GetTempPath());
setAttributesNormal(new DirectoryInfo(ssDir));
Directory.Delete(ssDir, true);
}
[TestMethod]
public void TestAddFile()
{
File.WriteAllText(dir + "a", "This is a file");
ss.AddFile("a");
...
}
[TestMethod]
public void TestAddFolder()
{
ss.CreateFolder("a/");
...
}
Это дает новый случайный временный путь для каждого теста и удаляет его, когда он сделан. Можно проверить это путем выполнения его в отладке и рассмотрения переменной dir для каждого тестового сценария.
Хорошо разве MSTest не является инстанцированием класса для каждого теста? Это было моим пониманием его. В таком случае вообще Вы звоните от своего конструктора, код инициализации (на тест по определению).
РЕДАКТИРОВАНИЕ: Если это не работает (который я все еще думаю, что это должно, потому что MSTest должен удостовериться, что отдельные выполнения метода тестирования изолируются), тогда TestInitialize
, Ваш атрибут. По тому, как лучшее сравнение модульного теста доступно в Ссылка на Codeplex
Я думаю, что Вы ищете эти ClassInitialize
атрибут.