I use wildfly-arquillian-container-embedded to do my test.
In the generated war, arquillian-core.jar was included in the lib directory.
The arquillian-core.jar contains \org\jboss\shrinkwrap\api and \org\jboss\shrinkwrap\descriptor.
But in my test class, i use jboss.shrinkwrap.resolver.api.maven.Maven.
how can wildfly find the class since shrinkwrap-resolver-api-maven is not packaged in the war?
If the class/library is not in the archive, then it cannot find it. If you need to run the code inside of the container, then the easiest thing is to resolve the ShrinkWrap Resolver dependency and put it into the war archive as well.