рассмотрим следующий класс тестирования:
[TestClass]
public class ExampleTests
{
[TestMethod]
public void FileDoesNotExists()
{
Assert.IsFalse(System.IO.File.Exists("testfile.txt"));
}
[TestMethod]
[DeploymentItem("testfile.txt")]
public void FileExists()
{
Assert.IsTrue(System.IO.File.Exists("testfile.txt"));
}
}
В зависимости от порядка, в котором эти тесты выполняются, они могут пройти, но нет гарантии, что они будут выполняться в заказечто они определены, поведение в реальном мире недетерминировано ... очевидно, это плохо.
Я осмотрелся и поэкспериментировал с TestCleanupAttribute, но не смог найти надежный способ получить оба тестапройти, но кажется, что должен быть легкий способ сделать это.Существует ли такой метод?
update: Это кажется невозможным, поскольку среда тестирования предполагает, что DeploymentItems не изменяются после развертывания, и, следовательно, развертывает каждый элемент только один раз.В краткосрочной перспективе я изменил тестируемый код, чтобы он больше не требовал такого поведения, а в более долгосрочной перспективе я, скорее всего, реализую атрибут, который не делает этого предположения.