Going back to the earlier premise

> It seems to me that a number of problems are caused by ATH tests being
in a separate repository from the code under test

I would say the biggest problem is not so much that - rather that we do not 
run enough of these tests for the code that is affected, early enough, nor 
is there probably a good set of well written smoke test candidates.

Moving the code is one possible solution to the first issue, but it also 
has other problems.  For example If we update the PageObjects you then need 
to update N repos (or just not bother) to account for the change in API.  
(granted changes in API are hopefully minimal, but that is not always the 
case, esp wrt things like table-2-div).

I discussed with directly with Mark Waite, but to me we need some new tests 
that better cover what we consider to be "critical functionality", (ie an 
Acceptance test), what we tend to have today is a bunch of limited tests 
where things are testing some things in isolation.

I would love to see a test that was run on a core PR that at least created 
a credentials (in different scopes, stores), an agent a a pipeline.  And 
check that the pipeline can checkout from a Git Repo  (github would be 
nice, but attempting to minimize network operations and hence flakes and 
also brings security issues into play...) and build some PRs and a main 
branch.
And something similar with a FreeStyleJob.  (include in that Junit 
reporting).  Currently the smoke tests for core PRs are too fine grained to 
me.

I think we could make some quick wins with the following form of attack

*  extend buildPlugin so that you can specify a list of ATH tests to run 
(currently most of the tests are in the form of plugins.<plugin-name>Test
* introduce a few new tests like discussed above that are run on Jenkins 
PRs.

Whatever we have, if we end up having ATHs on core PRs to detect 
regressions early then we need to be prepared to maintain the ATH 
tests/framework or to not accept the changes.  The maintenance has mostly 
fallen to a few individuals like Tim, Vincent and myself.  We had a passing 
build last October, but it did not last (as things where not run with any 
associated changes).

I am all in favour of improving the current situation however that happens 
and am happy to see this gaining traction.

/James

On Wednesday, April 27, 2022 at 7:33:44 PM UTC+1 ullrich...@gmail.com wrote:

>
> > Am 26.04.2022 um 18:28 schrieb Basil Crow <m...@basilcrow.com>: 
> > 
> > On Tue, Apr 26, 2022 at 7:45 AM Ullrich Hafner <ullrich...@gmail.com> 
> wrote: 
> > 
> >> Those tests will run in a special docker container with a headless 
> browser (chrome or firefox). 
> > 
> > Ideally, I think we would want to support both Dockerized and 
> > non-Dockerized builds if possible. 
>
> You can run the build locally without Docker. Docker is just used in CI 
> (GitHub Action or Jenkins). I am locally using a different Maven profile 
> and run the tests without Docker in Firefox or Chrome. You can even run it 
> from IntelliJ and set breakpoints. 
>
> > 
> >> […] run them as real system tests using a real browser and a real 
> Jenkins instance and not as part of our integration tests with a fake UI 
> (HTMLUnit) and a fake Jenkins (started via JTH) […] 
> > 
> > Regarding the use of a "real Jenkins instance," I wonder how the ATH 
> > implementation compares to RealJenkinsRule, which is at a high level 
> > doing something very similar; namely, starting Jenkins in a separate 
> > Java process and tearing it down at the end of the test. If the 
> > RealJenkinsRule implementation is more efficient while still remaining 
> > compatible with the goal of frontend testing with a headless browser, 
> > it may be worth looking into unifying the two implementations in order 
> > to reduce maintenance and/or increase performance. 
> > 
> >> not all plugins have UI tests yet, so there is an initial ramp up time 
> required 
> > 
> > I think if we build it they will come. 
> > 
> >> […] UI tests are more fragile 
> > 
> > Has this ever not been the case in the decades you and I have been 
> > programming? I guess the benefit of this idea depends on _how_ 
> > fragile. If the fragility is occasional and a retry chases the problem 
> > away, that could be tolerable. On the other hand, if the fragility is 
> > frequent and requires one or more retries, this could undermine the 
> > idea. 
> > 
> >> build execution times of PRs will increase since the initialization is 
> slow 
> > 
> > I wonder if some targeted optimization couldn't be done through the 
> > use of techniques such as the ones used in RealJenkinsRule. 
> > 
> > Basil 
> > 
> > -- 
> > You received this message because you are subscribed to the Google 
> Groups "Jenkins Developers" group. 
> > To unsubscribe from this group and stop receiving emails from it, send 
> an email to jenkinsci-de...@googlegroups.com. 
> > To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jenkinsci-dev/CAFwNDjphex3uXLfjsAfCpEaFvMNpXgBocgnX5tHaSuqTV1iZ7w%40mail.gmail.com.
>  
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/2ec3290f-93cc-40d1-926f-bedffa1c9d2fn%40googlegroups.com.

Reply via email to