How can i call a test like a macro

Running a test in a post-hook will still mean that the model has been built and cause any issues you were concerned about.

Running a test macro in a post-hook is not a supported configuration - I think it will run the test sql, but it won’t do anything with the results if the test fails.

The recommended way to avoid deploying invalid datasets is to run a blue-green deployment, where you build everything but only switch out the tables if the tests have passed.