|
2 | 2 |
|
3 | 3 | A comprehensive reporting framework supporting multiple generators - static, email & realtime, historical analytics with ChainLP. |
4 | 4 |
|
| 5 | +Note: ChainTest is still in active development. |
| 6 | + |
5 | 7 | ## Generators |
6 | 8 |
|
7 | 9 | * Simple: [Dark](https://chaintest.s3.us-east-2.amazonaws.com/samples/SimpleDark.html) | [Light](https://chaintest.s3.us-east-2.amazonaws.com/samples/SimpleLight.html) |
8 | 10 | * Email: [Sample](https://chaintestblob.blob.core.windows.net/chaintest/email/Email.html) |
9 | 11 | * ChainLP: https://chaintest.onrender.com/ |
10 | 12 |
|
11 | | -## What is a ChainTest generator? |
| 13 | +### What is a ChainTest generator? |
12 | 14 |
|
13 | 15 | A generator is responsible for creating output files based on the test results and configuration settings. It processes templates, saves necessary resources, and generates reports in a specified format. |
14 | 16 |
|
15 | 17 | ### How to enable generators? |
16 | 18 |
|
17 | | -ChainTest is still in active development, and only Java unit test frameworks are supported at present. Generators can be enabled via properties files located on classpath - for more information, see the supported plugins below. |
| 19 | +Only Java unit test frameworks are supported at present. Generators can be enabled via properties files located on classpath - for more information, see the supported plugins below. |
18 | 20 |
|
19 | | -### Supported Test Frameworks |
| 21 | +## Supported Test Frameworks |
20 | 22 |
|
21 | 23 | * [junit5](https://github.com/anshooarora/chaintest/tree/main/plugins/chaintest-junit5) |
22 | 24 | * [cucumber-jvm](https://github.com/anshooarora/chaintest/tree/main/plugins/chaintest-cucumber-jvm) |
23 | 25 | * [testng](https://github.com/anshooarora/chaintest/tree/main/plugins/chaintest-testng) |
24 | | -* pytest (in progress) |
25 | 26 |
|
26 | 27 | ## ChainLP |
27 | 28 |
|
@@ -79,35 +80,33 @@ chaintest.generator.chainlp.host.url=<host:port> |
79 | 80 |
|
80 | 81 | The chaintest-core client is the framework component that supports plugins to store embeds for each report. For example, with SimpleGenerator, the client saves all embeds relative to the report file in the `resources` folder. |
81 | 82 |
|
82 | | -Storage support will be available with S3 start version `1.0.7` of plugins and `0.0.5` of ChainLP. At present, screenshots/embeds are not available with ChainLP |
| 83 | +As of `chaintest-core:1.0.11` and `ChainLP: 0.0.9`, embeds are stored in DB by default. This can be turned off in favor of S3 via `chaintest.storage.service.*` properties: |
| 84 | + |
| 85 | +#### AWS S3 for Screenshots/Embeds |
83 | 86 |
|
84 | | -For embeds to work with ChainLP, the client requires the following to be enabled: |
| 87 | +To archive and view embeds in ChainLP from S3, the following settings are required: |
85 | 88 |
|
86 | 89 | ``` |
87 | 90 | # storage |
88 | 91 | chaintest.storage.service.enabled=true |
89 | 92 | # [azure-blob, aws-s3] |
90 | | -chaintest.storage.service=azure-blob |
| 93 | +chaintest.storage.service=aws-s3 |
91 | 94 | # s3 bucket or azure container name |
92 | | -chaintest.storage.service.container-name= |
| 95 | +chaintest.storage.service.container-name=<bucket name> |
93 | 96 | ``` |
94 | 97 |
|
95 | | -* Storage support will be released in `1.0.7` and will initially be rolled out for `aws-s3` only |
96 | | - * Storage parameters need to be configured on both client-side and on ChainLP |
97 | | - * The client and ChainLP both use the [AWS Credential Chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to authenticate against the bucket and store/access blob data |
98 | | - * For ChainLP, the secrets can be configured via `<host>/settings` by clicking the `Secrets` tab which will set these parameters as System properties and ChainLP will create a presigned URL for each embed |
99 | | -* Future support will be available for Azure Blob and storing embed data directly in the database (which means, blob storage will not be required, more on this later) |
| 98 | +To configure communication between the client & ChainLP with S3: |
| 99 | + |
| 100 | +* Storage parameters need to be configured on both client-side and on ChainLP |
| 101 | +* The client and ChainLP both use the [AWS Credential Chain](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html) to authenticate against the bucket and store/access blob data |
| 102 | +* For ChainLP, the secrets can be configured via `<host>/settings` by clicking the `Secrets` tab which will set these parameters as System properties and ChainLP will create a presigned URL for each embed |
| 103 | + |
| 104 | +ChainLP creates a presigned URL which is served to the frontend with a lifetime of 24 hours. |
100 | 105 |
|
101 | 106 | ## Is Docker required for all ChainTest reports? |
102 | 107 | * Docker is not a requirement for any of the static reports (SimpleGenerator, EmailGenerator) |
103 | 108 | * Docker is required to host ChainLP as it is only available as a Docker image |
104 | 109 |
|
105 | | -## When is Docker required for ChainTest? |
106 | | -In ChainTest's context, Docker is required only if setting up ChainLP given one or more of the below requirements: |
107 | | - |
108 | | -* Comprehensive Dashboard: Ideal for generating historical analytics and consolidating multiple project reports in one place |
109 | | -* Quick Setup: If you want to avoid manually setting up dependencies, Docker provides a pre-configured environment |
110 | | - |
111 | 110 | ## Contributing |
112 | 111 |
|
113 | 112 | Contributions are welcome. Please open an issue or submit a pull request. |
|
0 commit comments