> 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 <[email protected]> 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 <[email protected] > <mailto:[email protected]>>: > >> 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 <[email protected]> >> 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 <[email protected] >>> <mailto:[email protected]> <mailto: >> [email protected] <mailto:[email protected]>>>: >>> >>>> 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 <[email protected] >>>>> <mailto:[email protected]>> >>>> 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 <[email protected] >>>>> <mailto:[email protected]> <mailto: >> [email protected] <mailto:[email protected]>> <mailto: >>>> [email protected] <mailto:[email protected]> >>>> <mailto:[email protected] <mailto:[email protected]>>>>: >>>>> >>>>>> 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
