The accepted answer is straight up wrong, at least about Dieharder. I don't know about TestU01 (I came across this while researching it), but I am currently using Dieharder to test a random series of integers generated by a Python program. Following is what my command line looks like:
time (python hashseq.py | dieharder -a -g 200)
hashseq.py generates a series of random integers and uses sys.stdout.write() to write them to stdout, where the command line pipe pipes them into dieharder. The "-g 200" switch is what tells it to get the random numbers from stdin. It is possible to create a GSL wrapper around your PRNG, and this is the recommended practice for large scale projects, but pipes are working perfectly well for me.
A quick Google search on TestU01 brought up the same link in the accepted answer, which suggests it is easy to use TestU01 in C. I did not find anything about using pipes with TestU01, but I also only spent a minute or so looking.
About bitstrings: At least with Dieharder, if you are piping in the values, it interprets them how it needs. If it needs a bitstream, it will interpret the data coming in as a bitstream. You don't need to do anything special. I don't know if TestU01 works the same way, but I cannot see why it would work differently.
As far as I am aware, there is no consensus on which is best. Dieharder interprets the input as unsigned integers for some tests and bitstreams for others. This works perfectly when your input is signed or unsigned integers. TestU01 can catch some issues that Dieharder won't, but according to Wikipedia, it interprets the input as floats between [0, 1), which I believe means the tests are lower resolution (a significant space of the float range is not between 0 and 1, and ignoring those reduces the resolution of a 32 bit float well below 32 bits). This also makes TestU01 more sensitive to the most significant bits and less sensitive to the least significant bits. I don't know about NIST yet, so I cannot help you there. I should add though: The author and community of Dieharder do try to add any new tests that are worth adding. Given how old the other two are, Dieharder may already have all of those tests in it.