This project is read-only.

Release 0.9.7 - Automation component

Coordinator
Jun 3, 2011 at 1:58 AM
Edited Jun 3, 2011 at 4:57 AM

The CommonLibrary.NET 0.9.7 version has a new Automation component.  It's a light-weight automation runner using xml scripts for running tasks in your application and for loading data into your application.


PURPOSES / USE CASES

  1. "Data" automation for your application...  as opposed to system administration automation like "PowerShell"
  2. Load / Import data into your application ( e.g. easily load 1000 blog posts, and other data models into your system for testing purposes )
  3. Easy access to xml data in the script ( Commands can contain xml data )
  4. Similarity to NAnt but for your application, not for a build process
  5. Target users are not necessarily developers, but also Quality Assurance testers who want a simplified script based access to your API
  6. Need a specific way to inform user whether each command in the script succeeded

 

ALTERNATIVES CONSIDERED:

  1. PowerShell - More ideal for System level automation rather than data automation. This is a solid alternative and Powershell based scripts may also very likely be supported ( right now, xml and command line style scripts are supported )
  2. Iron Python - Did not want to drag in Iron Python libraries although it can be supported. Also wanted simplified and direct access to XML data

 

SUPPORTED FEATURES / SCENARIOS:


# GENERAL
Scenario: Can use variables in script
Scenario: Can map commands to C# classes
Scenario: Can automap command parameters to C# class properties
Scenario: C# Command classes have access to use inner xml element for data
Scenario: Command can be configured to fail but allow script to continue running
Scenario: Script result has access to each command result ( command Index, return value, success / fail, message )
Scenario: Script result can build up text combining all command result messages
Scenario: Can specify a "RefKey" on a command to uniquey identify and retrieve that command result value
Scenario: Can include file into the script
Scenario: Can add script variables programmatically


# SUBSTITUTIONS 
Scenario: Variables can reference other variables using format ${variable_name} 
Scenario: Command parameters can reference variables using format ${variable_name} 
Scenario: Command can assign it's return value to a variable via "assignto" parameter assignto="${hello_world_result} 
Scenario: Registered default variables 
Scenario: Register functions ${date.hour} using name/lamda pairs

 

# EXPRESSIONS
Scenario: Support For loops 
Scenario: Support If statements 
 

# ERROR-HANDLING
Scenario: Script can gracefully handle invalid xml
Scenario: Script can gracefully handle invalid command
Scenario: Script can gracefully handle command exception