You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+11-6Lines changed: 11 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,8 +2,12 @@
2
2
3
3
## What's New? ##
4
4
5
-
* The latest version ([Tcases 2.1.2](ReleaseNotes.md#212)) is now available at the Maven Central Repository.
6
-
See [HowToDownload](HowToDownload.md) for download instructions.
5
+
* The latest version ([Tcases 3.0.0](ReleaseNotes.md#300)) is now available at the Maven Central Repository.
6
+
See [HowToDownload](HowToDownload.md) for download instructions.
7
+
8
+
* Tcases 3.0.0 introduces [support for JSON](http://www.cornutum.org/tcases/docs/Tcases-Json.htm), for all documents that Tcases reads and produces.
9
+
Also included is a major reorganization of the Tcases API, which is not fully compatible with previous releases
10
+
-- see the [release notes](ReleaseNotes.md#300) for details.
7
11
8
12
* Subscribe to the [Tcases Forum](https://groups.google.com/d/forum/tcases) group to get notifications and share experiences with other Tcases users.
9
13
@@ -17,17 +21,18 @@ Tcases gives you a way to define the input space for your system in a form that
17
21
18
22
## How Does It Work? ##
19
23
20
-
First, you create a system input definition, an XML document that defines your system as a set of functions. For each system function, the system input definition defines the variables that characterize the function input space.
24
+
First, you create a system input definition, a document that defines your system as a set of functions. For each system function, the system input definition defines the variables that characterize the function input space.
21
25
22
-
Then, you can create a generator definition. That's another XML document that defines the coverage you want for each system function. The generator definition is optional. You can skip this step and still get a basic level of coverage.
26
+
Then, you can create a generator definition. That's another document that defines the coverage you want for each system function. The generator definition is optional. You can skip this step and still get a basic level of coverage.
23
27
24
-
Finally, you run Tcases. Tcases is a Java program that you can run from the command line or using the [Tcases Maven Plugin](http://www.cornutum.org/tcases/docs/tcases-maven-plugin/). The command line version of Tcases comes with built-in support for running using a shell script or an ant target. Using your input definition and your generator definition, Tcases generates a system test definition. The system test definition is an XML document that lists, for each system function, a set of test cases that provides the specified level of coverage. Each test case defines a specific value for every function input variable. Tcases generates not only valid input values that define successful test cases but also invalid values for the tests cases that are needed to verify expected error handling.
28
+
Finally, you run Tcases. Tcases is a Java program that you can run from the command line or using the [Tcases Maven Plugin](http://www.cornutum.org/tcases/docs/tcases-maven-plugin/). The command line version of Tcases comes with built-in support for running using a shell script or an ant target. Using your input definition and your generator definition, Tcases generates a system test definition. The system test definition is an document that lists, for each system function, a set of test cases that provides the specified level of coverage. Each test case defines a specific value for every function input variable. Tcases generates not only valid input values that define successful test cases but also invalid values for the tests cases that are needed to verify expected error handling.
25
29
26
-
Of course, the system test definition is not something you can execute directly. But it follows a well-defined XML schema, which means you can use a variety of XML transformation tools to convert it into a form that is suitable for testing your system. For example, Tcases comes with a built-in transformer that converts a system test definition into a Java source code template for a JUnit or TestNG test class.
30
+
Of course, the system test definition is not something you can execute directly. But it follows a well-defined schema, which means you can use a variety of XML transformation tools to convert it into a form that is suitable for testing your system. For example, Tcases comes with a built-in transformer that converts a system test definition into a Java source code template for a JUnit or TestNG test class.
27
31
28
32
## Get Started! ##
29
33
30
34
*[Tcases: The Complete Guide](http://www.cornutum.org/tcases/docs/Tcases-Guide.htm)
35
+
*[Tcases: The JSON Guide](http://www.cornutum.org/tcases/docs/Tcases-Json.htm): A companion to the _Complete Guide_ adding info specific to JSON
Another major change is that Tcase APIs have been reorganized into multiple JARs. The improvement in modularity allows API users to
15
+
streamline dependencies to only those components actually needed. But these changes are not fully compatible with previous releases,
16
+
so API users may need to make changes to their projects, as described below.
17
+
18
+
* Programs that use CLI classes (`TcasesCommand`, etc.) must change dependencies to use `org.cornutum.tcases:tcases-cli`.
19
+
20
+
* Programs that directly read or write Tcases documents (using classes like `SystemlnputDocReader`, `SystemTestDocWriter`, etc.)
21
+
must change dependencies to use `org.cornutum.tcases:tcases-io`.
22
+
23
+
* The main utility classes `TcasesCommand` and `Tcases` have been refactored, relocating methods that use stream IO directly to the new class `TcasesIO` in the `tcases-io` module. Also, the superfluous inheritance relationships among these classes have been removed.
24
+
25
+
3
26
## 2.1.2 ##
4
27
5
28
Minor improvements, including some documentation touch-ups and some refactoring using functional expressions to simplify and clarify the code.
0 commit comments