Giter Club home page Giter Club logo

scenarioo-cs's Introduction

Scenarioo

Automated Documentation of Applications with UI Tests

Scenarioo is a tool to leverage the power of your UI tests and to make them available as a documentation of your software system to all people involved in the design, development, test, operation and management of your software system.

Webpage & Documentation

For more information about Scenarioo, see the following resources:

Live Demo

You can see an example Scenarioo documentation and the Scenarioo Viewer Web App in action in our demo:

http://demo.scenarioo.org

Downloads & Links

Downloads and more links, even for different releases (like forthcoming release candidates) can be found under Downloads & Links

CI/CD Build Server

https://circleci.com/gh/scenarioo

Master: Latest Stable Release Build Status

Develop: Current Development State Build Status

License

Scenarioo is mainly distributed under GNU General Public License, which enables you to use the tool freely.

The Writer Libraries use GNU license with linking exception, for freely linking it even in your commercial products (if needed at all).

Most examples are provided using BSD license, which even allows you to copy these code examples freely.

See LICENSE.txt and further LICENSE-files for different licenses of different components in some subproject folders and especially in our separate library and example repositories, hosted under https://github.com/scenarioo

scenarioo-cs's People

Contributors

bruderol avatar scenarioo-ci avatar tobiaszuercher avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

tobiaszuercher

scenarioo-cs's Issues

Automatically derive ScreenshotFileName

Following the Tutorial I wrote something like this to write the step:

    private void WriteStep()
    {
        var step = new Step
                       {
                           StepHtml = new StepHtml(WebDriver.PageSource),
                           StepDescription = new StepDescription
                                                 {
                                                     Title = WebDriver.Title,
                                                     Index = CurrentIndex
                                                 },
                           Page = new Page(WebDriver.CstPathAndQuery)
                       };
        ScenarioDocuWriter.SaveStep(UseCase.Name, Scenario.Name, step);

        var screenshot = WebDriver.GetScreenshot().AsByteArray;
        ScenarioDocuWriter.SaveScreenshot(UseCase.Name, Scenario.Name, step, screenshot);

        ScenarioDocuWriter.Flush();
        CurrentIndex++;
    }

After importing the result to Scenarioo, the screenshots were missing. Turns out that the ScreenshotFileName attribute of the StepDescription was missing. So I added the attribute:

    private void WriteStep()
    {
        var step = new Step
                       {
                           StepHtml = new StepHtml(WebDriver.PageSource),
                           StepDescription = new StepDescription
                                                 {
                                                     Title = WebDriver.Title,
                                                     Index = CurrentIndex,
                                                     ScreenshotFileName = new ScenarioDocuFiles(null).GetScreenshotFileName(CurrentIndex)
                                                 },
                           Page = new Page(WebDriver.CstPathAndQuery)
                       };
        ScenarioDocuWriter.SaveStep(UseCase.Name, Scenario.Name, step);

        var screenshot = WebDriver.GetScreenshot().AsByteArray;
        ScenarioDocuWriter.SaveScreenshot(UseCase.Name, Scenario.Name, step, screenshot);

        ScenarioDocuWriter.Flush();
        CurrentIndex++;
    }

Proposal: Derive the ScreenshotFileName property from the Step.Index property in the ScenarioDocuWriter.SaveScreenshot() method (if ScreenshotFileName is not set).

versioning startegy of writer library(s)

@bruderol shall we align the version number also in the writer library to match the scenarioo version?

i think it makes sense to align the first two number parts (Major, Minor) to indicate the alignment of the "feature level" with scenarioo.

eg: 2.1.x.y -> format supports all features of scenarioo 2.1.x

i'm not sure if we really need 4 numbers for the writer library. if so, then we use

x as the patch level,
y as the build counter

2.1.1.100 -> first patch
2.1.2.107 -> second patch

the build counter is shared across all branches that's why we may have holes. i'm not a big fan of that, but it's much easier to configure this way.

we could also do just 2.1.y for simplification (3 numbers are easier to read than 4 :))

use build number as indication for patches:
2.1.100
2.1.107 -> it's a higher build number -> bugfixes

what do you think?

cc: @adiherzog

Using backslash in destinationRootDirectory leads to strange behavior

Using a backslash in the destinationRootDirectory argument of the ScenarioDocuWriter led to a strange behavior (uncaught exception or something). Adding a second constructor taking a FileInfo as destinationRootDirectory would be great.

Wrong:

var scenarioDocuWriter = new ScenarioDocuWriter("E:\Scenarioo\", branch, build);

Correct:

var scenarioDocuWriter = new ScenarioDocuWriter("E:/Scenarioo/", branch, build);

Better:

var scenarioDocuWriter = new ScenarioDocuWriter(new FileInfo("E:/Scenarioo/"), branch, build);

Update Scenarioo-CS Docu and NuGet Account / Package Description

I think our Scenarioo-CS docu and NuGet Acocunt would need a little bit of love.

Issues to be solved:

@tobiaszuercher I started to do it, but it seems not to be so easy, so I had to stop ... maybe Metadata can only be changed with a new release? Linking the README.md from master branch into NuGet might be a good option? We do the same for npm here:
https://www.npmjs.com/package/scenarioo-js

Or what do you think?
In any case we should also update our README.md first!

What I already did: I migrated our nuget account to a Microsoft account for Scenarioo - since nuget accounts are deprecated - see Emails.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.