{"id":25255838,"url":"https://github.com/dashorst/nljug-article-2017","last_synced_at":"2025-10-27T01:31:37.266Z","repository":{"id":22130905,"uuid":"95380296","full_name":"dashorst/nljug-article-2017","owner":"dashorst","description":"Demo project for article written for the Java Magazine of the NLJUG","archived":false,"fork":false,"pushed_at":"2022-06-24T13:45:28.000Z","size":3571,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-04-16T19:33:21.857Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dashorst.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-06-25T19:09:19.000Z","updated_at":"2024-04-16T19:33:21.858Z","dependencies_parsed_at":"2022-07-29T09:09:17.139Z","dependency_job_id":null,"html_url":"https://github.com/dashorst/nljug-article-2017","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dashorst%2Fnljug-article-2017","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dashorst%2Fnljug-article-2017/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dashorst%2Fnljug-article-2017/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dashorst%2Fnljug-article-2017/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dashorst","download_url":"https://codeload.github.com/dashorst/nljug-article-2017/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238422552,"owners_count":19469548,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-12T05:59:53.923Z","updated_at":"2025-10-27T01:31:31.252Z","avatar_url":"https://github.com/dashorst.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"= Generating screenshots and a manual using your tests \n\nThis project was crafted as an example for generating a user manual with screenshots from your tests.\nIt was conceived as an article for the magazine of the Dutch Java User Group _NLJUG_.\n\n== License\n\nThe article file(s) listed below are licensed https://creativecommons.org/licenses/by-sa/4.0/[CC BY-SA 4.0]\n\n- src/main/asciidoc/artikel.adoc\n- src/main/asciidoc/artikel2.adoc\n\nEverything else of this project is https://opensource.org/licenses/MIT[MIT licensed].\n\n== Building and running the application\n\nThis application requires Java 8 and Maven 3 (3.5.0 recommended).\n\nThe following steps are done during processing.\n\nimage::src/main/asciidoc/images/build-process.png[]\n\n=== IDE\n\nYou can import the project into your IDE and build it there.\nYou can run the tests inside your IDE (see `src/test/java/nl/topicus/nljug/tests`)\n\n=== Commandline\n\nUsing `mvn package` will build the project and craft the application including the manual and screenshots.\n\nUsing `mvn jetty:run` when you have built the project will launch a server and you can then use the application from localhost (port 8080). \n\n== Technologies\n\nThis is a Maven project, and it uses _Arquillian_, _WebDriver_, _Graphene_, _aShot_ and _AsciiDoctor_ to test the application and generate the article and manual.\n\n=== Arquillian setup\n\nYou set up Arquillian by including the necessary libraries as dependencies in the Maven POM.\nTo change from _phantom.js_ as the browser, you have to modify the `src/test/resources/arquillian.xml` file.\nYou can add additional configuration in that file.\n\nNOTE: phantom.js is a deprecated project because Chrome and Firefox are working hard to build headless support into their browsers.\n\n== Additional notes\n\n- in order to capture partial screenshots, aShot requires JQuery to be in the HTML of the page. Because of this, the IndexPage and CheckoutPage include a JQuery reference as a header item.\n\n* the pipeline for files is:\n** tests generate screenshots in `target/screenshots`\n** Maven resource plugin copies image files from `src/main/asciidoc/images` to `target/screenshots` because AsciiDoctor can't handle multiple image folders\n** AsciiDoctor assembles the manuals into the `target/generated-docs` folder\n** Maven war plugin copies the `target/generated-docs` folder into the war under `/manual`\n  \n- Graphene is not required, but makes writing tests a much better experience\n ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdashorst%2Fnljug-article-2017","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdashorst%2Fnljug-article-2017","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdashorst%2Fnljug-article-2017/lists"}