0

I'm trying to run a junit test with Serenity BDD framework, using IntelliJ IDEA.

I get an error when I try to run the test:

java.lang.Exception: No tests found matching Method ... from org.junit.internal.requests.ClassRequest@71e693fa

This appears to be due to using RunWith annotation invoking SerenityParameterizedRunner

@RunWith(SerenityParameterizedRunner.class)

When the RunWith annotation is commented out, the test is found and starts executing (though that is not of much use, since we're relying on the Parameterized runner for building data).

I'm able to reproduce the problem with a simple project in order to demonstrate the problem.

package com.home;

public class Doorbell {
    private int ringCount = 0;

    public Doorbell() {

    }

    public void ring(){
        System.out.println("Ring!");
        ringCount++;
    }

    public int getRings() {
        return ringCount;
    }
}

Test Class:

package com.home;

import net.serenitybdd.junit.runners.SerenityParameterizedRunner;
import net.serenitybdd.junit.runners.SerenityRunner;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;

@RunWith(SerenityParameterizedRunner.class)
public class DoorbellTest {

    @Test
    public void testRings()
    {
        Doorbell db = new Doorbell();
        db.ring();
        db.ring();

        Assert.assertEquals(2,db.getRings());
    }
}

Pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>homeproject</groupId>
    <artifactId>mytestproject</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <serenity.version>1.9.31</serenity.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/net.serenity-bdd/serenity-core -->
        <dependency>
            <groupId>net.serenity-bdd</groupId>
            <artifactId>serenity-core</artifactId>
            <version>1.9.31</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/net.serenity-bdd/serenity-junit -->
        <dependency>
            <groupId>net.serenity-bdd</groupId>
            <artifactId>serenity-junit</artifactId>
            <version>1.9.31</version>
        </dependency>
    </dependencies>
</project>

Plesae try running the single unit test in the project. Any help much appreciated.

Jens Dibbern
  • 1,434
  • 2
  • 13
  • 20
phantom
  • 11
  • 3
  • Why are you using ```SerenityParameterizedRunner``` without any parameters? AFAIK this needs ```@TestData``` as well as a public constructor using testdata as parameters. – Jens Dibbern Feb 15 '19 at 20:33
  • Didn't add it to this test class, since I was able to reproduce the problem. In the real project, I'm using @UseTestDataFrom, reading in from a csv file – phantom Feb 15 '19 at 21:05

1 Answers1

1

Answer 11 from this Stack Overflow question solved my problem

Apparently you have to run the class containing the test, and not the test itself.

phantom
  • 11
  • 3