Unit test(using osgi-mock.junit5) to read osgi config fails to build | Community
Skip to main content
Level 3
February 17, 2021
Solved

Unit test(using osgi-mock.junit5) to read osgi config fails to build

  • February 17, 2021
  • 2 replies
  • 6682 views

Unit test fails with message

org.apache.sling.testing.mock.osgi.NoScrMetadataException: No OSGi SCR metadata found for class

 

 I have written a unit test using OSGi-mock-junit5 but when I try to build the project(mvn clean install), I get the failure message "org.apache.sling.testing.mock.osgi.NoScrMetadataException: No OSGi SCR metadata found for class"

 

I found similar post  https://cqdump.wordpress.com/2019/01/14/writing-unit-tests-for-aem-part-2-maven-setup/ & followed the steps to fix it but it's still the same issue.

 

anyone has got any idea?

Thanks in advance!

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by jlanssie-ird
mvn clean package -DskipTests

 

Worked for me. If you use intelliJ or another IDE, make sure to invalidate its caches. An IDE behaves differently from Terminal, it has its own "environment" along with its own caching mechanisms.

2 replies

Adobe Employee
February 17, 2021

After following the POM updates in the linked blog update, try the following maven commands:

 

$ mvn clean package -DskipTests
$ mvn test

 IIRC I would occasionally run into this issue if the OSGi SCR metadata XML files weren't generated when the tests ran; doing the `mvn clean package` would generate this for me and then allow my tests to run (you could try dialing it back to `mvn clean compile` or other phases/goals)

Level 3
February 17, 2021

Hi,

Yes both the folders are there, the XML files are in both but it doesn't have an XML file for the service written using OSGi annotations.

They have XML files for the services written using maven SCR annotations.

I can also see the surefire report created a file with the following message 

org.apache.sling.testing.mock.osgi.NoScrMetadataException: No OSGi SCR metadata found

The above message is generated from line "osgiContext.registerInjectActivateService" in a test class.

jlanssie-irdAccepted solution
Level 2
April 11, 2023
mvn clean package -DskipTests

 

Worked for me. If you use intelliJ or another IDE, make sure to invalidate its caches. An IDE behaves differently from Terminal, it has its own "environment" along with its own caching mechanisms.