When you run self-test on the cDAQ chassis, DAQmx only tests communication between your computer and the chassis. This is the intended behaviour.
You could write a little VI that self-tests a chassis and all the modules in it. With a DAQmx Device Property Node, there is a property called Chassis.ModuleDeviceNames that will give you an array of modules. You could index through the array and self test each of them.