Giter Site home page Giter Site logo

getgauge / gauge Goto Github PK

View Code? Open in Web Editor NEW
2.9K 126.0 337.0 13.7 MB

Light weight cross-platform test automation

Home Page: https://gauge.org

License: Apache License 2.0

Shell 1.61% Go 96.66% Ruby 0.22% PowerShell 0.34% JavaScript 0.31% NSIS 0.75% Python 0.11%
test-automation agile testing-tools behavior-driven-development golang bdd markdown acceptance-testing hacktoberfest

gauge's People

Contributors

ajoecker avatar apoorva-ga avatar apoorvam avatar chadlwilson avatar dependabot-preview[bot] avatar dependabot[bot] avatar haroon-sheikh avatar jean avatar johnboyes avatar kashishm avatar kaustavdm avatar luciferankon avatar mahendrakariya avatar mfeckie avatar navaneeth avatar naveensrinivasan avatar negidharmendra avatar nehashri avatar nivedhasenthil avatar nyuday avatar piotrnestor avatar prateekbaheti avatar riju91 avatar shubhamsc avatar simross avatar sriv avatar vishnukarthikl avatar xemle avatar yaman avatar zabil avatar

Stargazers

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

Watchers

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

gauge's Issues

Gauge autocomplete fails if parse/compile fails

Even if there is a problem in building the language implementation, Gauge should ideally return steps to autocomplete.

Gauge should attempt a best-effort approach in responding to API messages, rather than breaking all features.

Adding parameter info to getAllStepResponse

Currently allStepsResponse returns a list of strings with placeholders for parameters eg login as {} . We have to change that to login as if it is defined like that in the language end.

If there are multiple usages in the spec side then take the first one and add parameter info even if it is static.

Executing gauge specs from outside the project location

We try to get the project root when we are inside the project by going one level up till we get a manifest.json. But if we are outside the project, the search strategy won't work. So will have to handle execution from outside the project also.

Provide a hook for screenshots

Currently only the language runner can take screenshots on failure. Need to add a hook to allow taking custom screenshots.

Spaces not handled in Windows

gauge "C:/Users/Ken Mugrage/IdeaProjects/untitled2/specs/hello_world.spec"
Failed to start a runner. exec: "C:\Users\Ken": file does not exist

Process finished with exit code 1

Avoid repeated invoking of runners when executing specs

Gauge invokes instances of runner whenever it wants to scan and run specs separately. This causes the runner to perform redundant start up actions( i.e. build target projects) twice. These operations can become expensive, thus slowing down total execution.

Possible actions:

  • Gauge caches the instance of runner until it is done with it.
  • Add a flag to signal the runner that it can omit the startup actions.

Gauge step formatting

If there is a step in spec file like:

  • Verify that project contains "Step having "" and """

After formatting this becomes,

  • Verify that project contains "Step having "" and """
    This becomes an undefined step.

Support for tagged execution

Ability to execute specifications filtered by Tag

gauge --tags prod,tag2,tag3 specs

Will execute all specs or scenarios tagged with the tags passed (prod, tag2, tag3).

Make special parameters a plugin

Currently the file and table special parameters are added into gauge. The ability to write a special parameter plugin needs to be provided.

Add support to update plugins

Something like

gauge --update csharp

should fetch the latest csharp plugin compatible with the current gauge version.

Make Java compilation directory configurable

Currently it compiles all the files under src. This might be alright for 90% of the projects. But if they are using gauge together with the application code, then there will too many files which needs to be compiled unnecessarily. So have a configuration in .properties file which will say the directory to be compiled. So only tests directory can be specified.

It was compiling only src/test/java directory. But it was removed by the commit 9d38589. See the commit message for more information.

Configurable timeout for message reading

If a message request takes longer time to respond than a specified property(lets say message.read.timeout). This helps to identify potential infinite loop or unimplemented message type at the runner end.

Cannot run multiple gauge instances parallely

This is particularly important as every IDE project would invoke gauge --daemonize to communicate over the Gauge API.

If there are two projects foo and bar, the first one to receive a gauge --daemonize works well and is listening for messages.

The second one throws an error such as:

> gauge --daemonize
fatal error: all goroutines are asleep - deadlock!

goroutine 16 [semacquire]:
sync.runtime_Semacquire(0xc082000b88)
        c:/go/src/pkg/runtime/sema.goc:199 +0x37
sync.(*WaitGroup).Wait(0xc082006e20)
        c:/go/src/pkg/sync/waitgroup.go:129 +0x152
main.runInBackground()
        c:/Users/srikantv/projects/gauge/tmp/src/gauge/gauge.go:113 +0x175
main.main()
        c:/Users/srikantv/projects/gauge/tmp/src/gauge/gauge.go:44 +0x3b

goroutine 19 [finalizer wait]:
runtime.park(0x456920, 0xa090f0, 0xa07229)
        c:/go/src/pkg/runtime/proc.c:1369 +0xac
runtime.parkunlock(0xa090f0, 0xa07229)
        c:/go/src/pkg/runtime/proc.c:1385 +0x42
runfinq()
        c:/go/src/pkg/runtime/mgc0.c:2644 +0xdd
runtime.goexit()
        c:/go/src/pkg/runtime/proc.c:1445

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.