Cool! It look like he wrote his own TestRunner. We just need something which gave us Asserts and Runner. If it would be adopted from our resources good, but using Josh's is also ok I think.
Piotr 2017-11-03 14:32 GMT+01:00 Harbs <harbs.li...@gmail.com>: > > Executing them probably is happen through > > the junit - maybe we could use flexunit ? etc. > > Josh set up a pretty good system.[1] > > I’m hoping we can adopt that and extend it to run selenium as well. > > [1]https://github.com/BowlerHatLLC/asconfigc/tree/master/test < > https://github.com/BowlerHatLLC/asconfigc/tree/master/test> > > > On Nov 3, 2017, at 2:57 PM, Piotr Zarzycki <piotrzarzyck...@gmail.com> > wrote: > > > > Don't think about Maven for now. Once you build your fist test in AS3 I > > will probably add there Maven too. In that case Maven is just building > jar > > and you can execute those jar. Executing them probably is happen through > > the junit - maybe we could use flexunit ? etc. > > > > Here is how I understand above example: > > 1) Maven is building jar and helping to reach our examples probably by > > dependency: RoyaleStore > > 2) jar has been run along with tests which are using gecko driver [1] > > 3) Test is executed [3] - > > If we let's say can write tests in node.js and use selenium functions - > > that's ok cause we can wrap up all node things in AS3. > > > > [1] https://github.com/mozilla/geckodriver <https://github.com/mozilla/ > geckodriver> > > [2] > > https://github.com/apache/royale-asjs/blob/develop/examples/examples- > integrationtests/src/test/java/org/apache/royale/examples/royalestore/ > RoyaleStoreIT.java <https://github.com/apache/royale-asjs/blob/develop/ > examples/examples-integrationtests/src/test/java/org/apache/royale/ > examples/royalestore/RoyaleStoreIT.java> > > > > Piotr > > > > > > 2017-11-03 13:36 GMT+01:00 Harbs <harbs.li...@gmail.com <mailto: > harbs.li...@gmail.com>>: > > > >> I don’t understand how they work at all. There seems to be some Maven > >> magic going on, and I was having trouble figuring it out that last time > I > >> looked. > >> > >>> On Nov 3, 2017, at 2:23 PM, Piotr Zarzycki <piotrzarzyck...@gmail.com> > >> wrote: > >>> > >>> Harbs, > >>> > >>> I haven't used them personally, but I understand how they are working. > I > >>> agree that we should put our effort to have those tests written in AS3 > >>> instead of Java. We don't have to many active people among the > committer > >>> who know Java. Those example which we have can be just starting point - > >> Can > >>> it be rewritten to AS3 ? > >>> > >>> Piotr > >>> > >>> 2017-11-03 13:04 GMT+01:00 Harbs <harbs.li...@gmail.com <mailto: > harbs.li...@gmail.com> <mailto: > >> harbs.li...@gmail.com <mailto:harbs.li...@gmail.com>>>: > >>> > >>>> Hi Piotr, > >>>> > >>>> Do you understand how the Selenium tests work and how to write them? > >>>> > >>>> It looks like the tests are written in Java. IMO, ideally, the tests > >>>> should be written in ActionScript. > >>>> > >>>> Selenium has a Node.js driver and it makes sense that we should be > >> taking > >>>> advantage of that. > >>>> > >>>> In fact, we can probably have one framework which does non-UI unit > >> testing > >>>> using Node and UI testing using the node and selenium. > >>>> > >>>> Harbs > >>>> > >>>>> On Nov 3, 2017, at 1:31 PM, Piotr Zarzycki < > piotrzarzyck...@gmail.com <mailto:piotrzarzyck...@gmail.com>> > >>>> wrote: > >>>>> > >>>>> Hi Harbs, > >>>>> > >>>>> Fully agree what you are saying! Sometimes I have found myself > >> difficult > >>>>> without deeper knowledge how something is working when I check the > >> code. > >>>>> One thing which I can mention is that we already have Selenium > >>>> integrated. > >>>>> If you are going to spend some time on that I would start from the > >> point > >>>>> [1] and see whether we can use it. > >>>>> > >>>>> As for your coming to US - Wish I could be there! > >>>>> > >>>>> [1] > >>>>> https://github.com/apache/royale-asjs/tree/develop/ > examples/examples- <https://github.com/apache/royale-asjs/tree/develop/ > examples/examples-> > >>>> integrationtests <https://github.com/apache/royale-asjs/tree/develop/ > <https://github.com/apache/royale-asjs/tree/develop/> < > >> https://github.com/apache/royale-asjs/tree/develop/ < > https://github.com/apache/royale-asjs/tree/develop/>> > >>>> examples/examples-integrationtests> > >>>>> > >>>>> Piotr > >>>>> > >>>>> > >>>>> 2017-11-03 12:19 GMT+01:00 Harbs <harbs.li...@gmail.com <mailto: > harbs.li...@gmail.com> <mailto: > >> harbs.li...@gmail.com <mailto:harbs.li...@gmail.com>> <mailto: > >>>> harbs.li...@gmail.com <mailto:harbs.li...@gmail.com> <mailto: > harbs.li...@gmail.com <mailto:harbs.li...@gmail.com>>>>: > >>>>> > >>>>>> One topic which keeps coming up is better test coverage for Royale. > >>>>>> > >>>>>> I think this is becoming a critical issue for a few reasons: > >>>>>> 1. As we get close to version 1.0 it’s necessary to have good test > >>>>>> coverage for confidence of quality and confidence that we don’t > >>>> introduce > >>>>>> recessive bugs. > >>>>>> 2. It’s really hard to accept Github pull requests without examining > >> the > >>>>>> code VERY well that it does not introduce recessive bugs. CI which > >> runs > >>>>>> automated tests could give a preliminary test on pull requests to > >> ensure > >>>>>> that they don’t break anything. If the pull requests do break > >>>> something, it > >>>>>> allows the requester to fix the problem with confidence without > taking > >>>>>> others’ time. > >>>>>> > >>>>>> I think we need to break up testing into pieces and figure out a > >>>> strategy > >>>>>> to implement automated tests in a way that they are maintainable. > >>>>>> > >>>>>> Some points: > >>>>>> 1. I think integration into something like Travis would be very > >> helpful. > >>>>>> 2. I think there’s a Jenkins plugin for building pull requests. Not > >> sure > >>>>>> how useful it is.[1] > >>>>>> 3. Josh has created a Node.js-compatible test-runner architecture > >> which > >>>>>> could be useful for unit tests on parts of the framework which don’t > >>>> rely > >>>>>> on browser features. (i.e. models and the like) He mentioned the > >>>>>> possibility of donating it, and I think that would be a very useful > >>>> feature. > >>>>>> 4. For UI and integration tests, there seem to be some pretty cool > >>>>>> integrations using Selenium.[2][3] > >>>>>> 5. I think the main testing effort needs to be using JS and > something > >>>> like > >>>>>> Josh’s testing framework for non-UI pieces and some easy-to-use > >> Selenium > >>>>>> integration for visual pieces and integration tests. > >>>>>> 6. We probably also want some API endpoints we can test off of for > >>>>>> integration testing. > >>>>>> > >>>>>> I’m willing to invest time into this. > >>>>>> > >>>>>> It’s going to be a lot of work building out the tests and I think we > >>>> need > >>>>>> a plan for that. My thoughts: > >>>>>> > >>>>>> 1. Step one is to make it easy to write meaningful automated tests > and > >>>>>> establish a clear pattern. > >>>>>> 2. Step two is to start writing tests starting from the > >>>> most-used/easiest > >>>>>> to beak pieces and work out from there. > >>>>>> 3. Once the pattern is established, any new pieces MUST have testing > >>>>>> coverage. > >>>>>> 4. When fixing bugs, attention should be paid to adding testing for > >> that > >>>>>> component. > >>>>>> 5. When a pull request comes in on a piece which does not have unit > >>>> test, > >>>>>> a test must be written before accepting the pull request. The test > >> does > >>>> not > >>>>>> need to be written by the requester. Before examining the request, > the > >>>> test > >>>>>> should be written to pass for expected behavior and fail for the bug > >>>> that > >>>>>> the pull request is attempting to fix (assuming the pull request is > to > >>>> fix > >>>>>> a bug). > >>>>>> > >>>>>> Thoughts? > >>>>>> Harbs > >>>>>> > >>>>>> P.S. I’m thinking of coming to the US in late December/early > January. > >> I > >>>>>> would be interested in getting together for a hacking session with > >> folks > >>>>>> who are available. > >>>>>> > >>>>>> [1]https://wiki.jenkins.io/display/JENKINS/GitHub+pull+ < > https://wiki.jenkins.io/display/JENKINS/GitHub+pull+> < > >> https://wiki.jenkins.io/display/JENKINS/GitHub+pull+ < > https://wiki.jenkins.io/display/JENKINS/GitHub+pull+>> > >>>>>> request+builder+plugin <https://wiki.jenkins.io/ < > https://wiki.jenkins.io/> < > >> https://wiki.jenkins.io/ <https://wiki.jenkins.io/>> < > >>>> https://wiki.jenkins.io/ <https://wiki.jenkins.io/> < > https://wiki.jenkins.io/ <https://wiki.jenkins.io/>>> > >>>>>> display/JENKINS/GitHub+pull+request+builder+plugin> > >>>>>> [2]https://docs.travis-ci.com/user/gui-and-headless-browsers/ < > https://docs.travis-ci.com/user/gui-and-headless-browsers/> < > >> https://docs.travis-ci.com/user/gui-and-headless-browsers/ < > https://docs.travis-ci.com/user/gui-and-headless-browsers/>> < > >>>> https://docs.travis-ci.com/user/gui-and-headless-browsers/ < > https://docs.travis-ci.com/user/gui-and-headless-browsers/> < > >> https://docs.travis-ci.com/user/gui-and-headless-browsers/ < > https://docs.travis-ci.com/user/gui-and-headless-browsers/>>> < > >>>>>> https://docs.travis-ci.com/user/gui-and-headless-browsers/ < > https://docs.travis-ci.com/user/gui-and-headless-browsers/> < > >> https://docs.travis-ci.com/user/gui-and-headless-browsers/ < > https://docs.travis-ci.com/user/gui-and-headless-browsers/>> < > >>>> https://docs.travis-ci.com/user/gui-and-headless-browsers/ < > https://docs.travis-ci.com/user/gui-and-headless-browsers/> < > >> https://docs.travis-ci.com/user/gui-and-headless-browsers/ < > https://docs.travis-ci.com/user/gui-and-headless-browsers/>>>> > >>>>>> [3]https://saucelabs.com/products/integrations < > https://saucelabs.com/products/integrations> < > >> https://saucelabs.com/products/integrations <https://saucelabs.com/ > products/integrations>> <https://saucelabs.com/ <https://saucelabs.com/> < > >> https://saucelabs.com/ <https://saucelabs.com/>> > >>>> products/integrations> <https://saucelabs.com/ < > https://saucelabs.com/> <https://saucelabs.com/ <https://saucelabs.com/>> > >> <https://saucelabs.com/ <https://saucelabs.com/> < > https://saucelabs.com/ <https://saucelabs.com/>>> > >>>>>> products/integrations> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> -- > >>>>> > >>>>> Piotr Zarzycki > >>>>> > >>>>> mobile: +48 880 859 557 > >>>>> skype: zarzycki10 > >>>>> > >>>>> LinkedIn: http://www.linkedin.com/piotrzarzycki < > http://www.linkedin.com/piotrzarzycki> < > >> http://www.linkedin.com/piotrzarzycki <http://www.linkedin.com/ > piotrzarzycki>> < > >>>> http://www.linkedin.com/piotrzarzycki <http://www.linkedin.com/ > piotrzarzycki> <http://www.linkedin.com/ <http://www.linkedin.com/> > >> piotrzarzycki>> > >>>>> <https://pl.linkedin.com/in/piotr-zarzycki-92a53552 < > https://pl.linkedin.com/in/piotr-zarzycki-92a53552> < > >> https://pl.linkedin.com/in/piotr-zarzycki-92a53552 < > https://pl.linkedin.com/in/piotr-zarzycki-92a53552>> < > >>>> https://pl.linkedin.com/in/piotr-zarzycki-92a53552 < > https://pl.linkedin.com/in/piotr-zarzycki-92a53552> < > >> https://pl.linkedin.com/in/piotr-zarzycki-92a53552 < > https://pl.linkedin.com/in/piotr-zarzycki-92a53552>>>> > >>>>> > >>>>> GitHub: https://github.com/piotrzarzycki21 <https://github.com/ > piotrzarzycki21> <https://github.com/ <https://github.com/> > >> piotrzarzycki21> <https://github.com/ <https://github.com/> < > https://github.com/ <https://github.com/>> > >>>> piotrzarzycki21> > >>>> > >>> > >>> > >>> > >>> -- > >>> > >>> Piotr Zarzycki > >>> > >>> mobile: +48 880 859 557 > >>> skype: zarzycki10 > >>> > >>> LinkedIn: http://www.linkedin.com/piotrzarzycki < > >> http://www.linkedin.com/piotrzarzycki> > >>> <https://pl.linkedin.com/in/piotr-zarzycki-92a53552 < > >> https://pl.linkedin.com/in/piotr-zarzycki-92a53552>> > >>> > >>> GitHub: https://github.com/piotrzarzycki21 <https://github.com/ > >> piotrzarzycki21> > >> > > > > > > > > -- > > > > Piotr Zarzycki > > > > mobile: +48 880 859 557 > > skype: zarzycki10 > > > > LinkedIn: http://www.linkedin.com/piotrzarzycki > > <https://pl.linkedin.com/in/piotr-zarzycki-92a53552> > > > > GitHub: https://github.com/piotrzarzycki21 > > -- Piotr Zarzycki mobile: +48 880 859 557 skype: zarzycki10 LinkedIn: http://www.linkedin.com/piotrzarzycki <https://pl.linkedin.com/in/piotr-zarzycki-92a53552> GitHub: https://github.com/piotrzarzycki21