So in order to run both bitcoind and testnet at the same time do I make two bitcoin.conf files and place one in the .bitcoin directory and one in testnet3 directory with different port settings?
It works just fine (and for more than one coin) provided:
1) don't change the coin's default P2P port, you'll get de-prioritized and will get less connections
2) the arguments processing is somewhat convoluted and the "testnet" daemon will look into "mainnet" .conf file, therefore it is better to have single such file and set the "testnet" (and others that you want to differ) through the command line. You can leave "port" and "rpcport" at the defaults.
I've been running 4 coin daemons on a single computer with a single hard-linked *.conf file for many years now.
Edit: I forgot about one thing:
3) it seems like some hackers monitor coins P2P networks for IP addresses running multiple daemons and do extremely aggressive scans for hackable services on those addresses. Maybe they think that they discovered a coin exchange or some such high-value target? Don't know the real reason, but observed this effect multiple times. So if you are e.g. running sshd on the default port on the same IP address prepare to have serious CPU load from failed ssh login attempts.