Output in a Maven plugin when loaded via `ServiceLoader` - maven-plugin

In a vain attempt to solve Produce tree output with Surefire like the JUnit 5 console launcher for myself, I added a simple JUnit Jupiter TestExecutionListener to my project. It is registered via putting the class name into some file in META-INF, so I assume it is using Java’s ServiceLoader. In any case, it is instantiated with the default constructor.
Now the tricky integration part: When run using Surefire, all writes to standard out trigger warnings – this is not the way Maven plugins are supposed to create output. However, in the default-constructed listener, how would I get access to the Maven logger?
Maybe it is easier to extend Surefire and instead somehow wire the listener into it?

Related

Issues while implementing ITestListener interface in Selenium

Hello I am working on Automating a test using selenium webdriver & I am getting below issue when I try to implement the interface ITestListener.
When I implemented the methods using the RightClick -> Source-> Override/implement methods,
the methods are created automatically but without the annotation "#Override" indication. Also, each method has below error "method references to interface default methods are allowed only at source level 1.8 or above" (please see below image).
When I try to add the #OverrideMethod annotation manually, it gives other error "The method onTestStart(ITestResult) of type Listeners must override a superclass method", asking to remove the annotation.
Strangely this worked for other projects in the past & no configuration change has been since then. I tried to match everything with that working project and everything looks same.
I am not sure, what did I miss here. Can you please help me to resolve this issue ?
Also, please note that, the listener tags are also added in testng xml.
<listeners>
<listener class-name="trouble.Listeners" />
</listeners>
Eclipse error screen print
Your project execution environment is SE 1.5 now. You need to choose 1.8 or higher
Right click on Java System library on your project folder ->Choose properties .Click on execution environment and select a version 1.8 or above and choose apply and close.

How to integrate Protractor test cases with Hiptest?

For a Website which is made using angular js , our organization used protractor as the tool to automate test cases.
Our organization has come up with a new tool named 'HipTest' to manage test cases automation.
How to integrate protractor test cases with HipTest. I went to following links but was unable to fetch some useful information.
https://docs.hiptest.net/automate-your-tests/
https://github.com/hiptest/hiptest-publisher
Can Anyone help me how to start ?
I'm one of the main contributor or hiptest-publisher, so I should be able to help you.
The quick way to start with hiptest-publisher is to download the bootstrap of the tests from Hiptest (under the automation tab, you will have a "Javascript/Protractor" link).
You will get a zip file with four files (you should add all of them to your version control system, alongside the code of the application you are testing):
- one for the configuration of hiptest-publisher to use the command-line tool
- one for all the tests (you can split them later on, using the --with-folders option in the config file)
- one for the action words: that's the place where you will do the automation
- one for storing the status of the action words you exported (which is used with hiptest-publisher to see which action words have been updated since the last update)
Once the action words are implemented, the test files generated can be integrated in your test suite like any other Protractor test.
On the Hiptest side itself, the only requirement you have is that your tests should only be written using action words only. From what I understand from your post, you do not work directly in Hiptest yourself and you only manage the automation part (or did I get that wrong ? )
For pushing the execution results back to Hiptest, the principle is pretty simple:
- create a test run dedicated to the CI
- run the command "hiptest-publisher --config-file --test-run-id " before the tests (so only the tests inside the test run are executed, you do not want to run a test that someone is currently writing to be executed on fail of course)
- run your tests
- run the command "hiptest-publisher --config-file --push " to push the results back to hiptest.
Note that those two commands (including the test run ID) can be found directly inside Hiptest, from the "Automate" button in the test run.
If you have an Hiptest account, you can contact us directly on the chat, that might be easier to help you through the process.
Ho and I have a recording of the last webinar I made about automation, I guess you could find some useful information there too :)

Jenkins build-flow plugin "build" command

I suspect there is more fundamental learning I need before I attempt to use the build-flow plugin.
Using the DSL plugin I created a Seed job which created sub-jobs:
FromTemplate-Job1 to FromTemplate-Job3
Ultimately I want to run these in parallel. However, for now, I just want to run FromTemplate-Job1
I thought this could just use build("FromTemplate-Job1") to run the job, however this generates the exception:
groovy.lang.MissingMethodException: No signature of method: script1438099035271418250533.build() is applicable for argument types: (java.lang.String) values: [FromTemplate-Job1]
There is obviously something fundamental that I need to understand?
Mahi - your question was the right one to ask - Thanks .
I had chosen FreeStyle as the job type and not Build Flow - it is now working!
DSL build command executes Free style job.
It won't execute job which is configured with multijob or dsl job.

Laravel Elixir - adding watch paths

I'm building an Angular application and so have a lot of HTML templates for Angular. My Elixir setup copies these templates into the public folder.
However, I've noticed that the watchers are not triggered when assets are modified (so I don't have to rerun Gulp every time I change a template).
Is there a way in Elixir to register extra folders to be watched for changes? I realise that I could do this by creating an extension that runs Gulp commands to do the copying and then register that extension with a watcher. But since there are already commands in Elixir for copying and registering watchers, it seems crazy to rewrite them.
Even if I have to do it as an extension task, is there a way for me to call existing Elixir tasks from my task?
You can do it using this command:
elixir.config.registerWatcher("default", "angular/**");
Take a look at this repository, it might help you a lot with your laravel-angular5 setup and make sure to check the gulpfile:
https://github.com/jadjoubran/laravel5-angular-material-starter

Using elmahr.elmah in winform application

I have recently shown to my team leader the ElmahR Dashboard and now he wants to implement ExceptionsLog with ElmahR in all of our current projects, including those that are Winform Applications, and after many days of searching I can't find a way to add a Winform Application as "ElmahR source".
Does anyone have a clue?
ErrorPostModule in ElmahR.Elmah does not support Winforms apps because it's been written to be an ELMAH module, so it's tied to an ASP.NET lifecycle and cannot be easily adapted. That said, ErrorPostModule does not do anything so magic and can be easily taken as a guideline to write a small "handler" to be used in a Winforms app. Take a look at its code here, what you should do is:
replace what's in the OnInit method, which simply reads configuration bits and attaches the error handler
when an error occurs, handle it like it's done in the SetError method to post it to the right destination reading the configuration parameters you read before. You would reference ELMAH and create an Error instance from your exception, and then use ErrorJson.EncodeString to encode it
You may want to borrow the W3.cs file to simplify the http form compilation.
At some point I might generalize this work and put it in ElmahR.Elmah, but not sure when I'll be able to do it.
I just forked the elmahr source code to work on this, I want to post errors from console applications, so I'm going to remove the dependency on Elmah and create the "error" objects and send them to the dashboard.
It's a work in progress but can be used as starting point for solving your problem.
https://bitbucket.org/rudygt/elmahr
Update: the fork now include full support to post to ElmahR using a ServiceStack endpoint, using json over http. This remove the dependency over the original Elmah to publish errors to the dashboard. The first example is a C# Console Application

Resources