FluentAutomation


Brandon Stirnaman

FluentAutomation Creator
Simple, fluent automated testing for web applications.



F14N Founder
Fast, easy automation test creation, execution and management.

RELEASED: Fluent Automation v2.0-Alpha

A few days ago we pushed Fluent Automation v2 to NuGet, its been in our master branch on GitHub for awhile now but we’ve continued testing and felt it was ready for some more widespread use.

There are several breaking changes from v1 to v2, but we’ve streamlined our model considerably so we can hopefully avoid another round of breaking changes in the future. For example, a test class should now be created as:

[TestClass]
public class ExampleTestClass : FluentAutomation.FluentTest  
{
    public ExampleTestClass()
    {
        FluentAutomation.PhantomJS.Bootstrap();
    }
}

Compared to the old setup, you now must be explicit about what provider you’re intending to test against for a test class. Generally I expect this to get hidden away in a base class, but this change was based on some feedback of the last update to the v1 code-base. Several users had issues with the way we looked for providers and allowed an override via AppSettings configuration or a magic string setting in the Setup method. There was definitely a code smell that we needed to look at.

At the same time, we transitioned to using IoC to load the providers. Specifically TinyIoC is now a part of the API. Given the new changes and the IoC model we’ve adopted, the Bootstrap method call will be our primary way of providing configuration bits to the framework for the foreseeable future.

New world, no more virtual Setup method waiting for your custom bits, so how do you manage global configuration? Presently (in v2.0alpha2 build) this is done via a static Settings class.

Settings.ScreenshotPath  
Settings.DefaultWaitTimeout  
Settings.DefaultWaitUntilTimeout  
Settings.DefaultWaitUntilThreadSleep  

(If you noticed something missing… fear not! ScreenshotOnAssertException will be making a comeback in v2.0-alpha3!)

Also new, you may have noticed the bootstrapped automation provider is currently PhantomJS. As of version 2.0 PhantomJS is a fully supported platform for headless automation. Still working out a few issues but its very exciting!

Lots, lots, lots more changes coming for the better, including a new method of running tests on a remote machine without resorting to the more limited JSON-based protocols. The new docs will be moving to GitHub so we can more easily manage them and hopefully allow users to help fill in the gaps.

Kind of rant-ish I know, but I wanted to get something out there, hit me up on twitter (@stirno) if you need help with anything Fluenty

EDIT: Forgot another interesting tidbit — Try using Chrome on a brand new project, without ChromeDriver. Let me know if it works for you