Light weight cross-platform test automation

Gauge Logo

Actions Status

Ask at StackOverflow Contributor Covenant

Welcome to Gauge

Gauge is a light weight cross-platform test automation tool. It provides the ability to author test cases in the business language.

Get Started

Read more about Why Gauge can be used, its terminologies and get started...

Find out more

User Docs Setup Guide Examples Contributing Brand Style Guide
i1
Learn more about using Gauge
i2
Getting started with Gauge
i3
Some Gauge Examples
i4
How can you contribute to Gauge?
i5
Gauge brand colours, logos, images etc.

Questions or need help?

Troubleshooting

Context specific Troubleshooting guide is available in relevant pages of the Gauge Documentation.

Talk to us

Please see below for the best place to ask a query:

Other projects

Also maintained by Gauge

  • Taiko Headless web browser automation.

Add Gauge Badge to your project!

Copy the text below and add it to the README.md of your project using Gauge, and show your support. It looks like this:

Gauge Badge

[![Gauge Badge](https://gauge.org/Gauge_Badge.svg)](https://gauge.org)

License

Gauge is released under the Apache License, Version 2.0. See LICENSE for the full license text.

Copyright

Copyright 2018 ThoughtWorks, Inc.

Owner
Gauge
A free and open source test automation framework
Gauge
Comments
  • Gauge is crashing with OOM when running 50 Specs in parallel

    Gauge is crashing with OOM when running 50 Specs in parallel

    GaugeCrashLogs.txt

    Expected behavior

    Gauge specification should run in parallel without issues

    Actual behavior

    Gauge crashes when running in 50 specification in parallel

    Steps to reproduce

    Run 50 specs in parallel

    Executing in 50 parallel streams.

    [runner: 45] Error occurred during initialization of VM java.lang.OutOfMemoryError[runner: 45] : unable to create new native thread [runner: 4] Error occurred during initialization of VM [runner: 4] java.lang.OutOfMemoryError: unable to create new native thread runtime: failed to create new OS thread (have 100 already; errno=11) fatal error: newosproc GaugeCrashLogs.txt

    Machine on which Tests are running(Linux OS): Linux 3.8.13-55.2.1.el6uek.x86_64 #2 SMP Wed Jul 15 14:19:51 PDT 2015 x86_64 x86_64 x86_64 GNU/Linux

    Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 2 On-line CPU(s) list: 0,1 Thread(s) per core: 1 Core(s) per socket: 2 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 26 Model name: Intel(R) Xeon(R) CPU E5530 @ 2.40GHz Stepping: 4 CPU MHz: 2400.085 BogoMIPS: 4800.17 Hypervisor vendor: VMware Virtualization type: full L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 8192K NUMA node0 CPU(s): 0,1

    Gauge version

    Gauge version: 0.6.0

    Plugins

    html-report (2.1.1) java (0.5.0)

  • Tests in Test Explorer are disappeared during running tests

    Tests in Test Explorer are disappeared during running tests

    Expected behavior

    Tests in text explorer should run correctly and do not disappeared .

    Actual behavior

    Tests in Test Explorer are disappeared during running tests. I do not know which tests are correct and which are incorrect after running, because the test cases are disappeared.

    Steps to reproduce

    1. Run tests in Test Explorer

    Gauge version

    Gauge version: 1.0.4 Commit Hash: 3a9a647

    Plugins

    csharp (0.10.5) html-report (4.0.2) screenshot (0.0.1)

    I have also nightly (12.03.2019) version of Gauge (0.3.8) extension in Visual Studio - I think the problem can be with this plugin.

  • FEATURE REQUEST:Ability to Parse spec files

    FEATURE REQUEST:Ability to Parse spec files

    Hello! I am looking into switching my team over to gauge for our test runner from Lettuce(lettuce.it). Most of our test frameworks are written in Python, except for 1 in Java. One feature that our current test runner has, that I don't see in Gauge, is the ability to parse the test case file, and spit out some generic step implementations. So my request is for that ability.

    ###Requirements

    • Pass a completed specification file without matching step implementations into gauge via some command(IE. gauge parse specs/spec_file_here)
    • Prints out step definitions into the console that you can copy and paste into a step implementation file, saving time and eliminating misspellings

    ###Stretch Goals/Nice to haves

    • Generate empty functions below each step definition with "assert false" for each step and something printed to the console(like ‘you must implement this’).
    • If you want to use any data from the spec in your test, those are added as arguments to the corresponding step
    • Add the specification name at the top of the result set as a comment
    • Put the needed import statements above that(IE. from getgauge.python import step)
    • Ask for a file path and save all the above info into a file in the specified directory

    ###Example(with stretch goals)

    • This is from what our current test runner does, but the step implementations are the same, and this applies to Python as thats what I am familiar with. Something along these lines would be nice. "from getgauge.python import step

    *************************************

    GAUGE PARSER TEST

    *************************************

    @step('Given I am testing the gauge parser') def given_i_am_testing_the_gauge_parser(): assert False, "You must implement this"

    @step('When I pass a into gauge') def when_i_pass_a_file_into_gauge(file): assert False, "You must implement this"

    @step('Then I see my boilerplate step implementations') def then_i_see_my_boilerplate_step_implementations(): assert False, "You must implement this"

    Gauge version

    CHI-BBROUDE-MAC:~ bbrouder$ gauge -v [DEPRECATED] This usage will be removed soon. Run gauge help --legacy for more info. Gauge version: 0.9.0

    Plugins

    csharp (0.10.1) html-report (4.0.1) java (0.6.4) python (0.2.0) ruby (0.4.1) spectacle (0.1.2) xml-report (0.2.0)

    Thank you! Please let me know if anything is unclear.

  • Initializing gauge connection to x framework.jar

    Initializing gauge connection to x framework.jar

    Describe the bug Spec files are not recognized by inteliJ. Ctrl + click on spec results in "Cannot find declaration to go to"

    To Reproduce Steps (or project) to reproduce the behavior:

    1. Open Intelij
    2. Take notice of the intelij progress popup "Initializing gauge connection to project.jar

    connection

    
    **Logs**
    Cropped for obvious reasons idea.log
    ////////////////////////////////////////////////////////////
    INFO - ks.gauge.GaugeBootstrapService - Using `50655` as api port to connect to gauge API for project 
    INFO - ks.gauge.GaugeBootstrapService - Initializing Gauge connection at 50655 
    
    
    INFO - .diagnostic.PerformanceWatcher - Pushing properties took 2064ms; general responsiveness: ok; EDT responsiveness: ok 
    INFO - j.compiler.server.BuildManager - BUILDER_PROCESS [stderr]: WARNING: An illegal reflective access operation has occurred 
    INFO - j.compiler.server.BuildManager - BUILDER_PROCESS [stderr]: WARNING: Illegal reflective access by com.intellij.util.ReflectionUtil (file:/C:/IntelliJ%20IDEA%202020.2.4/lib/util.jar) to method java.util.ResourceBundle.setParent(java.util.ResourceBundle) 
    INFO - j.compiler.server.BuildManager - BUILDER_PROCESS [stderr]: WARNING: Please consider reporting this to the maintainers of com.intellij.util.ReflectionUtil 
    INFO - j.compiler.server.BuildManager - BUILDER_PROCESS [stderr]: WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations 
    INFO - j.compiler.server.BuildManager - BUILDER_PROCESS [stderr]: WARNING: All illegal access operations will be denied in a future release 
    INFO - .OnDiskSharedIndexChunkLocator - Scanning C:\Users\C:\Users\croppedUser\AppData\Local\JetBrains\IntelliJIdea2020.3\shared-index for shared indexes... 
    INFO - ProjectRootPostStartUpActivity - C:/Users/C:\Users\croppedUser/workspace/croppedFramework/.idea case-sensitivity: expected=false actual=false 
    INFO - j.ide.script.IdeStartupScripts - 0 startup script(s) found 
    INFO - .diagnostic.PerformanceWatcher - Post-startup activities under progress took 6193ms; general responsiveness: ok; EDT responsiveness: 1/7 sluggish, 1/7 very slow 
    NFO - tor.impl.FileEditorManagerImpl - Project opening took 12258 ms 
    INFO - j.compiler.server.BuildManager - BUILDER_PROCESS [stdout]: Build process started. Classpath: C:/IntelliJ IDEA 2020.2.4/plugins/java/lib/jps-launcher.jar 
    INFO - j.compiler.server.BuildManager - BUILDER_PROCESS [stderr]: SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". 
    INFO - j.compiler.server.BuildManager - BUILDER_PROCESS [stderr]: SLF4J: Defaulting to no-operation (NOP) logger implementation 
    INFO - j.compiler.server.BuildManager - BUILDER_PROCESS [stderr]: SLF4J: See http://www.cropped.org/codes.html#StaticLoggerBinder for further details. 
    INFO -      #org.jetbrains.idea.maven - Sent token to maven server 
    INFO - j.compiler.server.BuildManager - BUILDER_PROCESS [stderr]: WARNING: An illegal reflective access operation has occurred 
    INFO - j.compiler.server.BuildManager - BUILDER_PROCESS [stderr]: WARNING: Illegal reflective access by com.intellij.util.ReflectionUtil (file:/C:/IntelliJ%20IDEA%202020.2.4/lib/util.jar) to method java.util.ResourceBundle.setParent(java.util.ResourceBundle) 
    INFO - j.compiler.server.BuildManager - BUILDER_PROCESS [stderr]: WARNING: Please consider reporting this to the maintainers of com.intellij.util.ReflectionUtil 
    INFO - j.compiler.server.BuildManager - BUILDER_PROCESS [stderr]: WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations 
    INFO - j.compiler.server.BuildManager - BUILDER_PROCESS [stderr]: WARNING: All illegal access operations will be denied in a future release 
    INFO - gnostic.WindowsDefenderChecker - Windows Defender status: not used 
    INFO - .diagnostic.PerformanceWatcher - Indexable file iteration took 8725ms; general responsiveness: ok; EDT responsiveness: ok 
    INFO - indexing.UnindexedFilesUpdater - Unindexed files update started: 0 files to index 
    INFO - g.FileBasedIndexProjectHandler - Reindexing refreshed files: 10 to update, calculated in 131ms 
    INFO - g.FileBasedIndexProjectHandler - Using 4 threads for indexing 
    INFO - .diagnostic.PerformanceWatcher - Reindexing refreshed files took 317ms; general responsiveness: ok; EDT responsiveness: ok 
    INFO - rationStore.ComponentStoreImpl - Saving appConsoleFoldingSettings took 16 ms 
    INFO - rationStore.ComponentStoreImpl - Saving Project(name=croppedFramework.jar, containerState=COMPONENT_CREATED, componentStore= BuildProcessPlugins took 15 ms, ExternalDependencies took 16 ms, ProjectStartupSharedConfiguration took 16 ms, RunManager took 31 ms 
    INFO - rationStore.ComponentStoreImpl - Saving appProjectJdkTable took 16 ms 
    WARN - ks.gauge.GaugeBootstrapService - Unable to open connection on try 1. Waiting and trying again 
    INFO - ution.rmi.RemoteProcessSupport - Terminating: 17828/Maven36ServerImpl5ec633ae 
    INFO - rationStore.ComponentStoreImpl - Saving appXDebuggerSettings took 16 ms 
    INFO - rationStore.ComponentStoreImpl - Saving Project(name=croppedFramework.jar, containerState=COMPONENT_CREATED, componentStore= KotlinCommonCompilerArguments took 15 ms, RunManager took 16 ms 
    WARN - ks.gauge.GaugeBootstrapService - Unable to open connection on try 2. Waiting and trying again 
    WARN - ks.gauge.GaugeBootstrapService - Unable to open connection on try 3. Waiting and trying again 
    INFO - rationStore.ComponentStoreImpl - Saving Project(name=croppedFramework.jar, containerState=COMPONENT_CREATED, componentStore= RunConfigurationProducerService took 15 ms 
    INFO - llij.ide.gdpr.EndUserAgreement - eua: C:\Users\C:\Users\croppedUser\AppData\Roaming\JetBrains\PrivacyPolicy\eua.cached 
    INFO - rationStore.ComponentStoreImpl - Saving appCodeInsightSettings took 16 ms, ProjectJdkTable took 15 ms 
    INFO - rationStore.ComponentStoreImpl - Saving Project(name=croppedFramework.jar, containerState=COMPONENT_CREATED, componentStore= ProjectLevelVcsManager took 15 ms, XDebuggerManager took 16 ms 
    WARN - ks.gauge.GaugeBootstrapService - Unable to open connection on try 4. Waiting and trying again 
    WARN - ks.gauge.GaugeBootstrapService - Unable to open connection on try 5. Waiting and trying again 
    WARN - ks.gauge.GaugeBootstrapService - Unable to open connection on try 6. Waiting and trying again 
    INFO - rationStore.ComponentStoreImpl - Saving Project(name=croppedFramework.jar, containerState=COMPONENT_CREATED, componentStore= RunManager took 16 ms 
    WARN - ks.gauge.GaugeBootstrapService - Unable to open connection on try 7. Waiting and trying again 
    WARN - ks.gauge.GaugeBootstrapService - Unable to open connection on try 8. Waiting and trying again 
    INFO - j.ide.actions.RevealFileAction - Exit code 1 
    INFO - rationStore.ComponentStoreImpl - Saving appFindSettings took 15 ms, JavaCodeFoldingSettings took 16 ms, LocalDatabaseDriverManager took 16 ms, XmlEditorOptions took 15 ms 
    INFO - rationStore.ComponentStoreImpl - Saving Project(name=croppedFramework.jar, containerState=COMPONENT_CREATED, componentStore= FileEditorManager took 16 ms, ToolWindowManager took 16 ms 
    WARN - ks.gauge.GaugeBootstrapService - Unable to open connection on try 9. Waiting and trying again 
    ////////////////////////////////////////////////
    

    Log continues until try 10 and stops.

    Expected behavior A clear and concise description of what you expect to happen.

    Screenshots If applicable, add screenshots to help explain your problem.

    Versions:

    gauge -v
    Gauge version: 1.1.7
    Commit Hash: 5d86b72
    
    Plugins
    -------
    html-report (4.0.12)
    java (0.7.13)
    screenshot (0.0.1)
    xml-report (0.2.3)
    
    • OS Win10 x64
    • Runner info - Java openjdk version "11.0.9.1" 2020-11-04 OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.9.1+1) OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.9.1+1, mixed mode)
    • IDE info (If using VS Code or Intellij IDEA) Intelij Ultimate Edition 2020.3.2
    • Gauge Plugin version 203.5981.155

    Additional context Hello everyone,

    So this problem is plaguing multiple users including me after performing a fresh install of inteliJ and setting up the project. Please note the following:

    • I dont have admin rights on my computer but I can request them for a short period of time...
    • Even if test specfiles are "red" they can be ran
    • I've discovered an workaround by doing these steps this order: disable gauge plugin from Intelij -> mvn clean, install, compile -> restart and clear caches in Intelij -> enable gauge plugin (after file indexing specs turn red) -> normal Intelij restart ->indexing is done and spec files are ok. At this point the in the idea.log shows: -/////////// INFO - ks.gauge.GaugeBootstrapService - Using 51339 as api port to connect to gauge API for project C:\Users\croppedUser\croppedFrameworkPath INFO - ks.gauge.GaugeBootstrapService - Initializing Gauge connection at 51339 /////////// And nothing related to gauge anymore

    Does anyone have any suggestion on how to permanently fix this? Thank you!

  • Running specs before parallel execution

    Running specs before parallel execution

    New feature

    There are some tests that can't run in parallel, thus, I would like to run them after a group of spec that run in parallel and get all the results in one report.

  • Changing the library used to read the properties files

    Changing the library used to read the properties files

    Signed-off-by: Haroon [email protected]

    Problem: If a properties file has a lot of properties split into different sections by comments. E.g.

    # ------------ Section 1 ------------------
    prop=...
    ..
    # ------------ Section 2 ------------------
    # property comments
    prop2=...
    

    Then all of the properties below including prop2 is being skipped by the old properties reader and not set as env vars.

    The dmotylev/goproperties library hasn't had any update since 2014 so it would be a good idea to move onto something like magiconair/properties which is more widely used.

    Fixes #1734

  • Connection to runner with Pid xxx lost. The runner probably quit unexpectedly. Inspect logs for potential reasons.

    Connection to runner with Pid xxx lost. The runner probably quit unexpectedly. Inspect logs for potential reasons.

    Hi, I've a problem on IntelliJ 2018.3. get this error in %80 on Debug mode. %50 run mode also. When I use terminal with mvn command, I didn't get an error.

    Listening for transport dt_socket at address: 51989

    Error ----------------------------------

    Connection to runner with Pid 16248 lost. The runner probably quit unexpectedly. Inspect logs for potential reasons. Error : read tcp 127.0.0.1:51994->127.0.0.1:51998: use of closed network connection

    Get Support ---------------------------- Docs: https://docs.gauge.org Bugs: https://github.com/getgauge/gauge/issues Chat: https://gitter.im/getgauge/chat

    Your Environment Information ----------- windows, 1.0.4, 3a9a647 html-report (4.0.6), java (0.7.2), screenshot (0.0.1)

  • NoSuchMethodError: org.reflections.util.ClasspathHelper.forJavaClassPath

    NoSuchMethodError: org.reflections.util.ClasspathHelper.forJavaClassPath

    Hi everyone,

    I tried to install Gauge with:

    • Ubuntu (15.04 64 bits)
    • Oracle JDK (build 1.8.0_60-b27)
    • Gauge (0.1.8)
    • Gauge java plugin (0.2.2)

    I followed the tutorial to run the hello_world spec generated by "gauge --init java" but no step can be executed. Here's the stack:

    [INFO] Exception in thread "main" 
    [INFO] java.lang.NoSuchMethodError: org.reflections.util.ClasspathHelper.forJavaClassPath()Ljava/util/Collection;
    [INFO] at com.thoughtworks.gauge.scan.ClasspathScanner.createReflections(ClasspathScanner.java:57)
    [INFO] at com.thoughtworks.gauge.scan.ClasspathScanner.scan(ClasspathScanner.java:37)
    [INFO] at com.thoughtworks.gauge.GaugeRuntime.main(GaugeRuntime.java:36)
    

    My team managed to install it on same configuration and it worked with no problem. Can you help me on this ?

    Thanks for your work, Gauge rocks.

  • Problem with execution of specs in alphabetical order since update to gauge 0.8.4

    Problem with execution of specs in alphabetical order since update to gauge 0.8.4

    Before we updated to gauge Version 0.8.4 we never set any flag for the execution order. But since update the execution order of the specifications seems to be random.

    Now I set the flag like that: gauge "--tags="install|restrictedmode"" ./specs --verbose --order=sort

    And hoped that now the execution would be alphabetical again. But unfortunately it is a random order and every run is different, no mattter if the order flag is set or not.

    We intentionally added numbers at the beginning of the specification name, but this does not seem to work anyway. How can I get a non random execution order again?

    Expected behavior

    alphabetical execution of specifications

    Actual behavior

    random execution of specifications

    Steps to reproduce

    1. run gauge with gauge "--tags="install|restrictedmode"" ./specs --verbose --order=sort
    2. for this tag there are three specifications found: 001 Engage installation, 005 Restricted mode, 007 Reschedule Jobs
    3. This specifications should be executed in the following order 001 Engage installation 005 Restricted mode 007 Reschedule Jobs
    4. But they are executed like this:

    Gauge version

    Gauge version: 0.8.4

    Plugins

    html-report (4.0.0) java (0.6.3)

    ` [go] Task: gauge "--tags="install|restrictedmode"" ./specs --verbose --order=sort Note: Some input files use or override a deprecated API. Note: Recompile with -Xlint:deprecation for details. 2017-05-22 15:38:55,932 0 [Thread-1] INFO com.infoniqa.engage.utils.BrowserFactory - looking for sahi user data under path: C:\GoAgent\pipelines\engage-gauge-demo\engage.gauge\sahi\userdata Mai 22, 2017 3:38:55 PM net.sf.sahi.config.Configuration reinitialize INFORMATION: Sahi properties file = C:\dev\sahi_pro\config\sahi.properties Mai 22, 2017 3:38:55 PM net.sf.sahi.config.Configuration reinitialize INFORMATION: Sahi user properties file = C:\GoAgent\pipelines\engage-gauge-demo\engage.gauge\sahi\userdata\config\userdata.properties 2017-05-22 15:38:56,603 671 [Thread-1] DEBUG com.infoniqa.engage.utils.BrowserFactory - start wait for proxy 2017-05-22 15:38:56,603 671 [Thread-1] INFO com.infoniqa.engage.utils.BrowserFactory - try waiting for sahi proxy Mai 22, 2017 3:38:56 PM java.util.prefs.WindowsPreferences WARNUNG: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5. Mai 22, 2017 3:38:57 PM java.util.logging.LogManager$RootLogger log INFORMATION: VALID LICENSE

    Sahi Pro 1-User License Licensed to: Infoniqa HR Solutions GmbH Issued date: 21 Sep 2016 Expiry date: 21 Sep 2017

    2017-05-22 15:38:57,774 1842 [Thread-1] INFO com.infoniqa.engage.utils.BrowserFactory - sahi proxy is not yet started 2017-05-22 15:38:57,785 1853 [Thread-1] INFO com.infoniqa.engage.utils.BrowserFactory - try waiting for sahi proxy

    Sahi Pro v6.3.2 started. Listening on port: 9999 Configure your browser to use this server and port as its proxy Browse any page and CTRL-ALT-DblClick on the page to bring up the Sahi Controller Mai 22, 2017 3:38:58 PM net.sf.sahi.util.BrowserTypesLoader loadAvailableBrowserTypes INFORMATION:


    Reading browser types from: C:\GoAgent\pipelines\engage-gauge-demo\engage.gauge\sahi\userdata\config\browser_types.xml

    Mai 22, 2017 3:38:58 PM net.sf.sahi.util.Utils setUrlConnectionFollowRedirectsInternal INFORMATION: urlConnectionFollowRedirectsInternal = false Mai 22, 2017 3:38:58 PM in.co.sahi.datastore.SahiDB INFORMATION: Using Database: driverName=org.h2.Driver jdbcurl=jdbc:h2:C:/GoAgent/pipelines/engage-gauge-demo/engage.gauge/sahi/userdata/database/db0;AUTO_SERVER=TRUE;DB_CLOSE_DELAY=-1;IGNORECASE=TRUE userName=sa Using Connection Pool 2017-05-22 15:38:58,674 2742 [Thread-1] DEBUG com.infoniqa.engage.utils.BrowserFactory - finished wait for proxy in 2070 ms 2017-05-22 15:38:58,814 2882 [Thread-1] INFO com.infoniqa.engage.utils.BrowserFactory - Launch browser chrome Mai 22, 2017 3:38:58 PM in.co.sahi.distributed.BrowserType launchInstanceCommon INFORMATION: Acquired available browser instance after retries:0 threadNo:0 sessionId:sahi_4e0e6f1c011ae04db50840e01e45a0c8b9f9 Mai 22, 2017 3:38:58 PM in.co.sahi.datastore.SahiDB createTables INFORMATION: Check tables version Mai 22, 2017 3:38:59 PM net.sf.sahi.test.ProcessHelper execute INFORMATION: "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --user-data-dir=C:/GoAgent/pipelines/engage-gauge-demo/engage.gauge/sahi/userdata\browser\chrome\profiles\sahi0 --proxy-server=localhost:9999 --disable-popup-blocking --always-authorize-plugins --allow-outdated-plugins --enable-npapi --incognito "http://sahi.example.com/s/dyn/Driver_start?sahisid=sahi_4e0e6f1c011ae04db50840e01e45a0c8b9f9__SahiAmpersandSahi__startUrl=http%3A%2F%2Fsahi.example.com%2F_s_%2Fdyn%2FDriver_initialized%3FstartUrl%3D" Mai 22, 2017 3:38:59 PM in.co.sahi.datastore.SahiDB createTables INFORMATION: versionFromDB=2016-10-13 14:21:30 Mai 22, 2017 3:38:59 PM in.co.sahi.datastore.SahiDB createTables INFORMATION: version=2016-10-13 14:21:30 Mai 22, 2017 3:38:59 PM in.co.sahi.datastore.SahiDB createTables INFORMATION: At current version. No changes were done. Mai 22, 2017 3:38:59 PM in.co.sahi.datastore.SahiDB createTables INFORMATION: {result: [["SAHIKEY","SAHIVALUE"],["dbVersion","83"],["versionNo","2016-10-13 14:21:30"]]} Mai 22, 2017 3:38:59 PM in.co.sahi.datastore.SahiDB createTables INFORMATION: Finished preparing report tables: 513ms

    001 Engage installation

    001 Engage installation Mai 22, 2017 3:39:00 PM net.sf.sahi.test.ProcessHelper$PIDGatherer run

    INFORMATION: PIDs: [1272, 4796, 3396, 2076]; 1998 ms P2017-05-22 15:39:09,967 14035 [Thread-1] INFO com.infoniqa.common.acceptance.EngageInstallation - getUpdateLink 2017-05-22 15:39:09,968 14036 [Thread-1] INFO com.infoniqa.common.acceptance.EngageInstallation - link: updatePending.goToAdminLink.message 2017-05-22 15:39:10,484 14552 [Thread-1] INFO com.infoniqa.common.acceptance.EngageInstallation - link: zur engage Update Administrationsseite. 2017-05-22 15:39:11,100 15168 [Thread-1] INFO com.infoniqa.common.acceptance.EngageInstallation - link: the engage Update Administration site. 2017-05-22 15:39:11,619 15687 [Thread-1] INFO com.infoniqa.common.acceptance.EngageInstallation - update link exists: false 2017-05-22 15:39:12,244 16312 [Thread-1] INFO com.infoniqa.common.acceptance.EngageInstallation - no engage! update necessary P2017-05-22 15:39:12,248 16316 [Thread-1] INFO com.infoniqa.common.acceptance.EngageInstallation - wait for installation to be ready 2017-05-22 15:39:12,248 16316 [Thread-1] INFO com.infoniqa.common.acceptance.EngageInstallation - installation done! P P P2017-05-22 15:39:33,736 37804 [Thread-1] INFO com.infoniqa.engage.login.LoginScreen - User INFONIQA SUPERADMIN is logged IN. P

    007 Reschedule Jobs

    007 Reschedule Jobs P P P P P P

    005 Restricted mode

    005 Change System Settings P P P

    Mai 22, 2017 3:40:07 PM net.sf.sahi.test.ProcessHelper kill INFORMATION: Kill: [1272, 4796, 3396, 2076] Successfully generated html-report to => C:\GoAgent\pipelines\engage-gauge-demo\engage.gauge\reports\html-report Specifications: 3 executed 3 passed 0 failed 0 skipped Scenarios: 3 executed 3 passed 0 failed 0 skipped

    Total time taken: 1m12.601s `

    So what should I do to get the execution order alphabetically again?

    thanks in advance.

    Regards, Natalie

  • Proposal: The statistics should reflect data driven execution as well.

    Proposal: The statistics should reflect data driven execution as well.

    Currently the statistics in any reporting format has at max the details of the specification/scenarios executed, passed, failed, or skipped. However, a spec having n scenarios with data table driven execution is reported as n scenarios only. For each row in a data driven execution, the scenarios are executed n*row number of times. Assuming there are x failures and y passes. The statistics still show only

    Specifications: 1 executed  0 passed    1 failed    0 skipped
    Scenarios:  n executed  0 passed    n failed    0 skipped
    

    Option 1:- If one were to consider each row as a different scenario driven by data, it would mean the following representation. The statistics could be represented as

    Specifications: 1 executed  0 passed    1 failed    0 skipped
    Scenarios:  n*rows executed y passed    x failed    0 skipped
    

    where x+y = n*rows

    Option 2 :- If one were to consider this as one scenario with various data parameters The statistics representation would look like.

    Specifications: 1 executed  0 passed    1 failed    0 skipped
    Scenarios:  n executed  0 passed    n failed    0 skipped
    Data driven:     n*rows executed x passed y failed 0 skipped
    

    Which option works for you or do you have any other suggestions. Please comment.

  • Support newline in step text

    Support newline in step text

    When I insert a newline into long step text, Gauge use only the first line as step definition and ignore the second line.

    Example:

    * Step with a long
      line.
    

    Gauge use only "Step with a long" as step definition and ignore "line."

    I use Gauge with the Java plugin.

  • Taiko timeouts when popup is triggered after closing tab

    Taiko timeouts when popup is triggered after closing tab

    Describe the bug Throws an error "There is no handler registered..." when confirm/prompt is triggered after a new tab is closed. Happens only in headless mode.

    To Reproduce

      (async () => {
        try {
          await openBrowser({ headless: true });
          await goto('https://google.com');
          await openTab();
          await waitFor(500);
          await closeTab();
          confirm('testing confirm', () => accept('OK'));
          await evaluate(() => confirm('testing confirm'));
        } catch (error) {
          console.error('error', error);
        } finally {
          await closeBrowser();
        }
      })();
    

    Logs

     ✔ Browser opened
    >  ✔ Navigated to URL https://google.com
    >  ✔ Opened tab with URL about:blank
    >  ✔ Closed current tab matching about:blank
    > Uncaught:
    There is no handler registered for confirm popup displayed on the page https://www.google.com/.
              This might interfere with your test flow. You can use Taiko's confirm API to handle this popup.
              Please visit https://docs.taiko.dev/#confirm for more details
    

    Expected behavior Should not throw an error

    Versions:

    • Taiko: Version: 1.3.5 (Chromium: 104.0.5109.0) RELEASE
    • Ubuntu 22.04.1 LTS jammy
    • Node.js: v18.10.0
  • Gauge list --scenarios may not be returning all scenarios

    Gauge list --scenarios may not be returning all scenarios

    Describe the bug I tried to use gauge list --scenarios to list all the scenarios, trying to get a count of how many existed in our project. It gave me 242 scenarios.

    We used a powershell script to sweep the directory and get the list, and it yields what may be the real count, at 355. In other words, the command line tool may be missing some scenarios.

    To Reproduce Steps (or project) to reproduce the behavior:

    1. Within the project folder, call gauge list --scenarios.
    2. Copy the output into something like Excel or Notepad++ and count note the number of rows/lines.
    3. Issue the following from within the same project folder:
    Start-Transcript
    #Using a transcript is just a quick and easy way to get an output file
    
    $file_location = "<your project directory here>" #Change the location
    
    $spec_files = Get-ChildItem $file_location -Filter "*.spec" -Recurse  #gets all the spec files
    
    $scenarios = @()
    $total_count = 0
    
    # this block gets the lines starting with ##
    foreach ($_ in $spec_files) {
        $FileContent = Get-Content $_.FullName
        foreach ($line in Get-Content $_.FullName) {
            if ($line -like '*##*') {
                $scenarios += $line
                $total_count += 1
            }
        }
    
        #This line just outputs the list of files that have matches in them, and provides the count per file
        $Matches = Select-String -InputObject $FileContent -Pattern "##" -AllMatches
    
        #output the per file data
        Write-Host $_.FullName " >>> " $Matches.Matches.Count
    }
    
    # Output the list of found scenarios
    foreach ($_ in $scenarios) {
        Write-Host $_
    }
    
    #Output the count of scnenarios
    Write-Host "Total scenarios: $($scenarios.Count)"
    
    Stop-Transcript
    
    1. Note the counts between the official command line tool results and the quick and dirty Powershell script will differ

    Expected behavior The counts between the two methods should match

    Screenshots N/A

    Versions:

    Gauge version: 1.4.3
    Commit Hash: f98dd40
    
    Plugins
    -------
    html-report (4.1.4)
    json-report (0.3.7)
    python (0.3.17)
    screenshot (0.1.0)
    xml-report (0.2.3)
    
    • OS Win10
    • Runner info: Python 3.10.4
    • IDE info VS Code/Powershell ISE
  • Concepts found in entire project_root

    Concepts found in entire project_root

    Describe the bug According to the gauge documentation, concepts have to be placed in the directory <project_root>/specs and its subdirectories. Link: https://docs.gauge.org/writing-specifications.html?os=macos&language=javascript&ide=vscode#concepts In my test it was not restricted to <project_root>/specs but seems to include the entire <project_root> and subdirectories.

    My Project copies specs and concepts and replaces some values before running, this leads to the problem that duplicated concepts are found. If I missed an option to restrict concept folders, please let me know, that would solve my issue.

    To Reproduce Clone or download this repo: https://github.com/MLaeuchli/gauge_concept_search run

    npm install
    npm run gauge
    

    Logs

    [ParseError] <project_root>/specs/Concept.cpt:1 Duplicate concept definition found => 'Search <term> on Wikipedia'
    [ParseError] <project_root>/someOtherFolder/Concept.cpt:1 Duplicate concept definition found => 'Search <term> on Wikipedia'
    

    Expected behavior The concept in <project_root>/someOtherFolder/Concept.cpt should not be found and therefore not interfere. Alternatively, a property to restrict where Concepts are allowed could be introduced.

    Versions:

    From package.json

    "dependencies": {
        "@getgauge/cli": "^1.4.3",
        "taiko": "^1.3.4"
      }
    

    From manifest.json

    {
      "Language": "js",
      "Plugins": ["html-report", "screenshot"]
    }
    
    • OS MacOS 13.0.1 (22A400)
    • Runner info Node version: v16.13.1, npm 8.1.2
    • IDE info Intellij IDEA
  • Gauge could not initialize. Install '' extension for code insights.

    Gauge could not initialize. Install '' extension for code insights.

    When i open my project the message "Gauge could not initialize. Install '' extension for code insights." is displayed. I use Gauge version: 1.4.3 with Taiko Version: 1.3.4 (Chromium: 103.0.5056.0) RELEASE.

    To Reproduce When I run a scenario : Running tool: gauge run --hide-suggestion --simple-console /Users/NICOLAS/Workspace/Gauge-Tests/specs/sanity-check.spec:7 env: node: No such file or directory Error occurred while waiting for runner process to finish. Error : exit status 127 Error ----------------------------------

    [Gauge] Failed to start gauge API: Error occurred while waiting for runner process to finish. Error : exit status 127

    Get Support ---------------------------- Docs: https://docs.gauge.org Bugs: https://github.com/getgauge/gauge/issues Chat: https://github.com/getgauge/gauge/discussions

    Your Environment Information ----------- darwin, 1.4.3, f98dd40 html-report (4.1.4), js (2.4.0), screenshot (0.1.0) Error: Tests failed.

    $ gauge init java # or js, python etc
    $ gauge run specs
    

    Expected behavior Must be able to run spec.

  • Getting Writer Error when trying to execute gauge command in different processes

    Getting Writer Error when trying to execute gauge command in different processes

    Describe the bug I'm trying to run multiple environments in parallel by spawning child processes (number of environments present) but I'm getting Logger Failure (might be because different processes trying to write in a file). Please look into the error below -

    panic: send on closed channel
    
    goroutine 10 [running]:
    github.com/getgauge/gauge/logger.CustomWriter.Write({{0x182a580, 0xc0000528c0}, 0xc0000446c0}, {0xc000408000, 0x7b, 0x8000})
    	/private/tmp/gauge-20220122-98976-o3fqiu/gauge-1.4.3/logger/customWriter.go:29 +0x105
    io.copyBuffer({0x182a560, 0xc00000e468}, {0x1829da0, 0xc000010298}, {0x0, 0x0, 0x0})
    	/usr/local/Cellar/go/1.17.6/libexec/src/io/io.go:425 +0x204
    io.Copy(...)
    	/usr/local/Cellar/go/1.17.6/libexec/src/io/io.go:382
    os/exec.(*Cmd).writerDescriptor.func1()
    	/usr/local/Cellar/go/1.17.6/libexec/src/os/exec/exec.go:311 +0x3a
    os/exec.(*Cmd).Start.func1(0xc000100600)
    	/usr/local/Cellar/go/1.17.6/libexec/src/os/exec/exec.go:441 +0x25
    created by os/exec.(*Cmd).Start
    	/usr/local/Cellar/go/1.17.6/libexec/src/os/exec/exec.go:440 +0x80d
    

    Can you please help me mitigate this issue or try to incorporate feature to run environments in parallel.

    To Reproduce Steps (or project) to reproduce the behavior:

    1. Initialise a gauge project
    2. Run the gauge command
    3. See error
    $ gauge init java # or js, python etc
    $ gauge run specs
    

    Logs

    Paste any log or error messages here
    

    Expected behavior A clear and concise description of what you expect to happen.

    Screenshots If applicable, add screenshots to help explain your problem.

    Versions:

    gauge -v
    
    • OS [e.g. MacOS 10.15.6 (19G2021) please be specific ]
    • Runner info (Please specify the correct version of Java/Node/Python/Dotnet/Ruby)
    • IDE info (If using VS Code or Intellij IDEA)

    Additional context Add any other context about the problem here.

  • Execute before and after for each spec

    Execute before and after for each spec

    This pull request aims to fix the issue described in https://github.com/getgauge/gauge/issues/2270. The before and after actions should always be executed for each spec. Setting these values to false actually only makes sense for testing purposes.

    Signed-off-by: John Barnes [email protected]

Automation Tool to auto generate markdown notes from online classes/talks/presentations.
Automation Tool to auto generate markdown notes from online classes/talks/presentations.

autonotes Automation tool to autocapture screenshots and join them with a supplied .srt or .txt file and output a notes file in markdown. Problem? Wat

Aug 29, 2021
Mdlinks - Markdown cross-document links checker

mdlinks This repository provides Go package, command-line tool, and a GitHub Action that can verify cross-document links in a collection of markdown f

Mar 19, 2022
Parse data and test fixtures from markdown files, and patch them programmatically, too.

go-testmark Do you need test fixtures and example data for your project, in a language agnostic way? Do you want it to be easy to combine with documen

Oct 31, 2022
A clean, Markdown-based publishing platform made for writers. Write together, and build a community.
A clean, Markdown-based publishing platform made for writers. Write together, and build a community.

WriteFreely is a clean, minimalist publishing platform made for writers. Start a blog, share knowledge within your organization, or build a community

Jan 4, 2023
Light weight, extensible configuration management library for Go. Built in support for JSON, TOML, YAML, env, command line, file, S3 etc. Alternative to viper.
Light weight, extensible configuration management library for Go. Built in support for JSON, TOML, YAML, env, command line, file, S3 etc. Alternative to viper.

koanf (pronounced conf; a play on the Japanese Koan) is a library for reading configuration from different sources in different formats in Go applicat

Jan 8, 2023
topolvm operator provide kubernetes local storage which is light weight and high performance

Topolvm-Operator Topolvm-Operator is an open source cloud-native local storage orchestrator for Kubernetes, which bases on topolvm. Supported environm

Nov 24, 2022
EasyTCP is a light-weight and less painful TCP server framework written in Go (Golang) based on the standard net package.

EasyTCP is a light-weight TCP framework written in Go (Golang), built with message router. EasyTCP helps you build a TCP server easily fast and less painful.

Jan 7, 2023
Fastest light-weight Discord server joiner written in GO
Fastest light-weight Discord server joiner written in GO

DiscordInviterGO! Fastest light-weight Discord server joiner written in GO Disclaimer For Educational purposes only. Use at your own risk. Automation

Jan 3, 2023
Light weight http rate limiting proxy

Introduction Light weight http rate limiting proxy. The proxy will perform rate limiting based on the rules defined in the configuration file. If no r

Dec 23, 2022
Light weight Terminal User Interface (TUI) to pick material colors written by Go.
Light weight Terminal User Interface (TUI) to pick material colors written by Go.

mcpick Light weight Terminal User Interface (TUI) to pick material colors. You do NOT need to take your hands off the keyboard to pick colors. Getting

Dec 27, 2022
Light weight thread safe cache for golang

go-cache Light weight thread safe LRU cache Getting started import( "fmt" "github.com/tak1827/go-cache/lru" ) func main() { size := 2 cache := l

Dec 12, 2021
Snugger is a light weight but fast network recon scanner that is written from pure golang
Snugger is a light weight but fast network recon scanner that is written from pure golang

Snugger is a light weight but fast network recon scanner that is written from pure golang. with this scann you can ARP your network, port scan hosts and host lists, as well as scan for BSSId

May 19, 2022
A light-weight FP utils lib for Go

FizPop A light-weight FP utils for Go Usage All functions are group by the data type they are processing, for example we can slices.Map a function to

Apr 20, 2022
A light-weight and sexy HTTP proxy server.

A light-weight and sexy HTTP proxy server. This is a reverse-proxy server meant to be hoested online. Once hosted, webpages through the HTTP and HTTPS

Feb 13, 2022
Fast and light-weight API proxy firewall for request and response validation by OpenAPI specs.
Fast and light-weight API proxy firewall for request and response validation by OpenAPI specs.

Open Source API Firewall API Firewall is a high-performance proxy with API request and response validation based on OpenAPI/Swagger schema. It is desi

Jan 8, 2023
RobotGo, Go Native cross-platform GUI automation @vcaesar

Robotgo Golang Desktop Automation. Control the mouse, keyboard, bitmap, read the screen, Window Handle and global event listener. RobotGo supports Mac

Jan 7, 2023
Handshake Query is a cross-platform library to trustlessly resolve and verify Handshake names using a p2p light client

Handshake Query ⚠️ Usage of this library is not currently recommended in your application as the API will likely change. Handshake Query is a cross-pl

Dec 22, 2022
End to end functional test and automation framework
End to end functional test and automation framework

Declarative end to end functional testing (endly) This library is compatible with Go 1.12+ Please refer to CHANGELOG.md if you encounter breaking chan

Jan 6, 2023
Test-at-scale - TAS - An intelligent test execution platform for engineering teams to achieve high development velocity
Test-at-scale - TAS - An intelligent test execution platform for engineering teams to achieve high development velocity

Test At Scale Test Smarter, Release Faster with test-at-scale. Status Table of c

Dec 22, 2022
Enterprise-Grade Continuous Delivery & DevOps Automation Open Source Platform
Enterprise-Grade Continuous Delivery & DevOps Automation Open Source Platform

CDS: Continuous Delivery Service CDS is an Enterprise-Grade Continuous Delivery & DevOps Automation Platform written in Go(lang). This project is unde

Jan 4, 2023