First, you can put all your tests in the same project as the code, but this may not be the best plan. Your main function would have to take arguments to switch between test and actual behaviour.
I often end up with three projects: A library, my main exe and the test project.
You could just add the same cpp files to the tests and the main exe if you don't want to make a third project, but in the long run making a third library project may be sensible.
Second, you can build boost test so that you can write your own main if you want. If you are changing identical code twice this is asking for trouble. If you are trying to maintain a copy of the code in order to test it you are going to make a mistake. Don't do it.