This project is read-only.

ATTN: This project is being absorbed by the project. Please check there for updates. When v1.0 of Atha is released, this project will be put to rest.

** OBSOLETE...................

Project Description
WE NEED YOUR HELP! Contact us to find out how.

Even Simpler Web/Windows Acceptance Testing attempts to address the gap between developers and testers who often develop code and the tests for that code separately. Although communication and some tooling helps, regression testing often falls back on Manual Test Scripts to get the product out the door. Many sophisticated teams automate regression testing of primary application functionality, but these automated tests are often limited. For example, automated web tests may only target a single type of browser or only the components of Windows applications are automated and not the actual Windows application itself.

This project aims to provide tooling and support for everyone involved in the connection between development and testing by relying on core development/testing principles and connecting simple solutions to those principles.

In its first version, this project will deliver the ability to run automated tests written as files in a file system (called a "Folder Runner") against an application's public API (called a "System Under Test") provided by the development team.

Currently, planned support for test file languages includes Microsoft Razor, Microsoft PowerShell, IronPython, and IronRuby. While authoring tests in each of these languages can get quite complicated. This project will aim to document simple solutions to testing the target applications.

A generalized API for web application testing will also be included in the first release utilizing the popular "Selenium2" and "WebDriver" frameworks.

NuGet Packages:

Razor Example:


    this.Title = "Razor Acceptance Tests for WebDriverRunner";


    Web.Verify.Url("http://localhost:23495/", "home page url");

    Web.Verify.Exists("#login", "login form exists");
    Web.Verify.Text("#providerUrl", "", "authentication provider text");
    Web.Verify.Exists("<button>", "submit button exists");


    Web.Verify.Url("http://localhost:23495/MockAuthenticator" + 
    "?" + 
   "&ReturnUrl=http%3A%2F%2Flocalhost%3A23495%2FAuth%2FSignInResponse", "authentication url");
Web.Verify.Exists("#authentication_response", "authentication form should exist"); Web.Verify.Exists("#claimed_identifier", "authentication identifier should exist"); Web.Verify.Text("#claimed_identifier", "", "authentication identifier value"); Web.Submit("#authentication_response"); Web.Verify.Url("http://localhost:23495/Dashboard", "dashboard url"); Web.Verify.Exists("#welcome", "welcome user message exists"); Web.Verify.Exists("#charts-link", "charts link exists"); Web.Click("#charts-link"); Web.Wait(2500); Web.Verify.Text("<h1>", "Charts", "charts text"); // Web.ClickAndHold("#slider a") Web.Go("http://localhost:23495/Auth/SignOut"); Web.Exit(); }


PowerShell Example:


#test eswat.PowerShell.SampleSystemUnderTest, eswat.PowerShell.AcceptanceTests

$TestContext.Title = "PowerShell Acceptance Tests for FolderRunner"

$application = $TestContext.SystemUnderTest

$application.Directory = [Environment]::CurrentDirectory

$TestContext.Verify.AreEqual([Environment]::CurrentDirectory, $application.Directory)

$TestContext.Verify.AreEqual("a", "a")

$TestContext.Verify.AreNotEqual("a", "b")




$TestContext.Verify.IsNotNull("not null string")


IronPython Example:


#test eswat.IronPython.SampleSystemUnderTest, eswat.IronPython.AcceptanceTests

import System
import test_context

test_context.Title = "Acceptance Tests for FolderRunner"

application = test_context.SystemUnderTest

application.Directory = System.Environment.CurrentDirectory

test_context.Verify.AreEqual(System.Environment.CurrentDirectory, application.Directory)

test_context.Verify.AreEqual("a", "a")

test_context.Verify.AreNotEqual("a", "b")




test_context.Verify.IsNotNull("not null string")


IronRuby Example:


#test eswat.IronRuby.SampleSystemUnderTest, eswat.IronRuby.AcceptanceTests

$test_context.Title = "Acceptance Tests for FolderRunner"

$application = $test_context.SystemUnderTest

$application.Directory = System::Environment.CurrentDirectory

$test_context.Verify.AreEqual(System::Environment.CurrentDirectory, $application.Directory)

$test_context.Verify.AreEqual("a", "a")

$test_context.Verify.AreNotEqual("a", "b")




$test_context.Verify.IsNotNull("not null string")

Last edited Nov 24, 2011 at 5:36 PM by iseric, version 13