Próbuję wykonać kilka automatycznych testów sieciowych mojej aplikacji ASP.NET. Miałem nadzieję użyć atrybutu AutoRollback z rozszerzeń Xunit.net, aby cofnąć wszelkie zmiany w bazie danych wprowadzone podczas testu. AutoRollback używa TransactionScope do rozpoczęcia transakcji przed testem i późniejszego jej wycofania.Czy można wycofywać operacje TransactionScope w przypadku Selenium lub Watin?
Kiedy próbuję trafić moją aplikację internetową podczas transakcji, zawsze przekracza limit czasu. Wygląda na to, że to powinno zadziałać, jakieś pomysły? Oto moja próba:
[Fact]
[AutoRollback]
public void Entity_should_be_in_list()
{
Entity e = new Entity
{
Name = "Test",
};
dataContext.Entities.InsertOnSubmit(e);
dataContext.SubmitChanges();
selenium.Open("http://localhost/MyApp");
Assert.True(selenium.IsTextPresent("Test"));
}
Wiesz, to wydaje się być tak oczywiste teraz, kiedy to powiedziałeś :) Miałem nadzieję, że nie będę cały czas budował i niszczał bazy danych, ale myślę, że utknąłem z tym. –
Musisz znaleźć sposób na włączenie obsługi transakcji w LINQ do SQL, aby mógł on dołączyć do istniejącego zakresu transakcji. –