If you plan to call into another program and test that source code, your unit test projects must be in the same workspace as the program you plan to test. You can also create self-contained unit test projects, where the code under test is all stored within the unit test project, in which case, the project can be stored in any workspace.
If you are calling into another project from your unit test project, both projects must be compiled to the same bitism.
Also, the project under test can be compiled to a number of target types (Single Executable File, Single Native Library File, All Native Library Files, or All Int/Gnt Files), but if multiple projects are to be tested by one unit test project, those projects must not have a target type of Single Executable File or All Executable Files - Single Executable File can only be used when only one project is to be tested, and All Executable Files is not supported at all.
When working with multiple projects, from within the unit test project, create a test fixture for each project under test, so that when creating the fixture file using the Create unit test from program option, the necessary elements to link the test cases directly to the source code in that project are added.