Knowledge Base > Cover CLI > Cover Replay: Getting Started (Windows)

Cover Replay: Getting Started on Windows

This section shows how to use Cover Replay to record and extract tests for a demo project in Windows. You can also:

Before you start, please get the Cover CLI and unpack the release ZIP in C:\cover\. If you unpack it elsewhere, please adapt steps 3 and 4 accordingly.

1. Get the project under test

Download the CoreBanking demo project and unzip it. Then compile it:

cd CoreBanking-replay-demo
mvn compile
mvn dependency:copy-dependencies

2. Run the application

The demo project has a batch application that processes bank transactions stored in .txt files. Run it like this:

java -cp "target\classes;target\dependency\*" ^
   io.diffblue.corebanking.ui.batch.BatchProcessor src\test\resources\batch\*.txt

This is an example from one of the input files (batch1.txt):

CLIENT|James Brown
ACCOUNT|1234|James Brown|10

3. Record the application

We now record the execution of this application using the Cover Replay agent. To do this, just execute the following script (if Cover is not unpacked in C:\cover\, please amend line 4 of the script):


The recording will be saved to a new folder within %userprofile%\.diffblue\rec\. Learn more about recording by checking agent documentation or reading the comments inside the script.

4. Extract tests from the recording

Extract tests for one package:

C:\cover\dcover.bat create --trace --verbose io.diffblue.corebanking.compliance.rules

Option --trace tells Cover to use the last recording to extract tests. Learn more about test extraction.

5. Inspect the created tests

Search for files named * in src\test\java\. For instance, the test shown below (from src\test\java\io\diffblue\corebanking\compliance\rules\ was extracted from your recording. Note the references to James Brown and the CashTransaction with the amount 120000L, which we saw in step 2:

public void testValidateAccountCompliance2() throws AccountException {
  // Arrange
  Account account = new Account(1234L, new Client("James Brown"), 10L);
  account.addTransaction(new CashTransaction(15L, new Date(1577836800000L), account));
  account.addTransaction(new CashTransaction(120000L, new Date(1580774400000L), account));
  account.addTransaction(new CashTransaction(-125L, new Date(1580860800000L), account));
  account.addTransaction(new CashTransaction(120000L, new Date(1582848000000L), account));
  ComplianceRuleLargeCashDeposits complianceRuleLargeCashDeposits =
     new ComplianceRuleLargeCashDeposits();

  // Act

  // Assert
  assertEquals(1, complianceRuleLargeCashDeposits.getCompliantAccounts().size());