Tôi đang cố gắng thiết lập các thử nghiệm của mình bằng Xunit. Tôi có một yêu cầu để xóa tất cả các hình ảnh trong một thư mục bắt đầu của các bài kiểm tra, và sau đó mỗi phương pháp hiện một số hình ảnh thay đổi kích thước và lưu một bản sao của đầu ra của nó vào thư mục. Thư mục chỉ nên làm trống một lần, và sau đó mỗi phương pháp sẽ lưu hình ảnh của riêng mình vào thư mục.Làm thế nào để chạy mã thiết lập chỉ một lần trong một bài kiểm tra xUnit.net
Khi tôi sử dụng IUseFixture<T>
, chức năng ClearVisualTestResultFolder
vẫn đang được gọi trước mỗi lần kiểm tra, vì vậy tôi chỉ kết thúc bằng một hình ảnh trong thư mục.
public class Fixture
{
public void Setup()
{
ImageHelperTest.ClearVisualTestResultFolder();
}
}
public class ImageHelperTest : IUseFixture<EngDev.Test.Fixture>
{
public void SetFixture(EngDev.Test.Fixture data)
{
data.Setup();
}
public static void ClearVisualTestResultFolder()
{
// Logic to clear folder
}
}
Nếu tôi đặt ClearVisualTestResultFolder
trong hàm tạo, nó cũng được gọi một lần cho mọi phương pháp thử nghiệm. Tôi cần điều này chỉ cần chạy một lần trước khi tất cả các phương pháp thử nghiệm được thực hiện, làm thế nào tôi có thể đạt được điều này?
Nếu có vấn đề, tôi sử dụng nhân tố thử nghiệm ReSharper.