/osynth

A library to synthesize an object from given interfaces.

Primary LanguageJavaApache License 2.0Apache-2.0

attributes.adoc

Quick Start

This is a quick start template file[Example].

Please describe your stuff.

Build Instructions

Build Dependencies

This project requires Java SE 8 to build. Please don’t forget installing and using it for building. This is intentional decision to make the testing compatible for as many product as possible.

Also, you need to install mvn and graphviz. To install them, please refer to the following URLs.

Or you can perhaps just do {brew,sudo apt,sudo yum} install {maven,graphviz}.

Build Steps

Build
$ mvn clean compile
Conduct Unit Test
$ mvn clean compile test
Generating Site
$ mvn clean package site

Generates the site under target/site in the following structure.

target/
  site/
    index.html   - The top page.
    apidocs/     - JavaDoc
    jacoco/      - JaCoCo report (code coverage)
    pit-reports/ - PIT report (mutation coverage)

Note that .adoc files under the src/site/asciidoc are rendered into .html files and placed in this directory.

The mutation testing is configured to cover only small amount of classes to save build time. To configure the coverage, refer to [mutationTesting].

Deploying Site
$ mvn clean package site

Misc

Conduct Mutation Test
$ mvn clean compile test org.pitest:pitest-maven:mutationCoverage

Currently, this may take very long time (≥ 2 hours), if you include all the classes of this product. By default, the pom.xml is configured to exercise the mutation testing over small number of classes so that you customize the intended coverage.

Under the plugin configuration for org.pitest:pitest-maven, you can find a following element.

pom.xml configuration for org.pitest:pitest-maven plugin
    <targetClasses>
        <param>com.github.dakusui.osynth.*</param>
    </targetClasses>

To cover all the classes, you can modify it like following.

pom.xml configuration for org.pitest:pitest-maven plugin
    <targetClasses>
        <param>com.github.dakusui.*</param>
    </targetClasses>

After a successful execution, it generates a pitest report under a directory target/pit-reports/{yyyyMMddHHmmss}.

Build Javadoc
$ mvn clean javadoc:javadoc

This generates JavaDoc under target/site/apidocs.

Build the Site
$ mvn clean package site
Publish the Site
$ mvn clean package site site-deploy

Copyright 2022 Hiroshi Ukai.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this work except in compliance with the License. You may obtain a copy of the License in the LICENSE file, or at:

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

References