But when I try to run "make test" from the lib/My/Client directory
Why would you want to run 'make test' in that directory? Usually the directory structure for a module looks like this:
Makefile.PL
Makefile
lib/My/Client.pm
lib/OtherModules.pm
t/test-one.t
t/test-two.t
# other stuff
META.yml
important-script.pl
README
examples/example1.pl
If you adhere to that standard, your Makefile lives in the root directory, and the tests in a directory sub directory of the root dir.
So running make test on the lib/Foo/ level would actually complain about a Makefile not being found. So tests are always run from the root level directory, in which case make tests will invoke your test scripts as perl t/test-file.t.
In this case a use lib 'lib'; in all scripts that are invoked with the root dir as the current working directory.