<NME> restart-browser.spec.js
<BEF> let util = require('./test_util');

describe('restart browsers between tests', function() {
  it('should run all scenarios successfully', function() {
    let cmd =
      'test/cucumber/conf/cucumber3Conf.js --cucumberOpts.tags @cucumber3 --restartBrowserBetweenTests';

    return util
      .runOne(cmd)
      .cucumberVersion3()
      .expectExitCode(0)
      .expectOutput('3 scenarios (3 passed)')
      .expectErrors([])
      .run();
  });
});
  describe('cucumber v4', () => {
    it('should run', () => {
      return util
        .testCucumber4([
          'test/cucumber/conf/cucumber4-5-6Conf.js',
          '--cucumberOpts.tags',
          '@cucumber4',
          '--restartBrowserBetweenTests'
        ])
        .expectSuccessfulRun('1 scenario (1 passed)')
        .run();
    });
  });

  describe('cucumber v5', () => {
    it('should run', () => {
      return util
        .testCucumber5([
          'test/cucumber/conf/cucumber4-5-6Conf.js',
          '--cucumberOpts.tags',
          '@cucumber5',
          '--restartBrowserBetweenTests'
        ])
        .expectSuccessfulRun('1 scenario (1 passed)')
        .run();
    });
  });

  describe('cucumber v6', () => {
    it('should run', () => {
      return util
        .testCucumber6([
          'test/cucumber/conf/cucumber4-5-6Conf.js',
          '--cucumberOpts.tags',
          '@cucumber6',
          '--restartBrowserBetweenTests'
        ])
        .expectSuccessfulRun('1 scenario (1 passed)')
        .run();
    });
  });

  describe('cucumber v7', () => {
    it('should run', () => {
      return util
        .testCucumber6([
          'test/cucumber/conf/cucumber4-5-6Conf.js',
          '--cucumberOpts.tags',
          '@cucumber7',
          '--restartBrowserBetweenTests'
        ])
        .expectSuccessfulRun('1 scenario (1 passed)')
        .run();
    });
  });
});

<MSG> Add afterEach logic to all cucumber versions. #121

<DFF> @@ -1,16 +1,61 @@
 let util = require('./test_util');
 
 describe('restart browsers between tests', function() {
-  it('should run all scenarios successfully', function() {
-    let cmd =
-      'test/cucumber/conf/cucumber3Conf.js --cucumberOpts.tags @cucumber3 --restartBrowserBetweenTests';
+  describe('cucumber version 1', () => {
+    it('should run', function() {
+      let cmd = [
+        'test/cucumber/conf/cucumber1Conf.js',
+        '--cucumberOpts.tags',
+        '@justThisOne',
+        '--restartBrowserBetweenTests'
+      ];
 
-    return util
-      .runOne(cmd)
-      .cucumberVersion3()
-      .expectExitCode(0)
-      .expectOutput('3 scenarios (3 passed)')
-      .expectErrors([])
-      .run();
+      return util
+        .runOne(cmd)
+        .expectExitCode(0)
+        .expectOutput('1 scenario (1 passed)')
+        .expectErrors([])
+        .run();
+    });
+  });
+
+  describe('cucumber version 2', () => {
+    it('should run', function() {
+      let cmd = [
+        'test/cucumber/conf/cucumber2Conf.js',
+        '--cucumberOpts.tags',
+        '@cucumber2',
+        '--restartBrowserBetweenTests'
+      ];
+
+      return util
+        .runOne(cmd)
+        .cucumberVersion2()
+        .expectExitCode(0)
+        .expectOutput('1 scenario (1 passed)')
+        .expectErrors([])
+        .run();
+    });
+  });
+
+  describe('cucumber version 3', () => {
+    it('should run', function() {
+      let cmd = [
+        'test/cucumber/conf/cucumber3Conf.js',
+        '--cucumberOpts.tags',
+        '@cucumber3',
+        '--cucumberOpts.tags',
+        '@tag1',
+        '--restartBrowserBetweenTests'
+      ];
+
+      return util
+        .runOne(cmd)
+        .cucumberVersion3()
+        .expectExitCode(0)
+        .expectOutput('1 scenario (1 passed)')
+        .expectErrors([])
+        .run();
+    });
   });
 });

Add afterEach logic to all cucumber versions. #121