Você definitivamente deve colocar seus testes no repositório. Os testes são, em minha opinião, parte do código e podem ajudar os outros imensamente a compreendê-lo (se bem escritos). Além disso, eles podem ajudar os outros quando mudarem ou contribuírem para a sua base de código. Bons testes podem dar a você a confiança de que suas alterações não quebram inadvertidamente nada.
O código de teste deve estar bem separado do código de produção. O Maven, por exemplo, consegue isso colocando a produção e o código de teste em pastas diferentes. A questão "é este arquivo parte da produção ou do código de teste" nunca deve surgir.
Pessoalmente, não escrevo testes de unidade para bibliotecas usadas no meu próprio código. Eu espero que eles estejam trabalhando (pelo menos quando eu uso uma versão de lançamento, apesar dos bugs obviamente poderem aparecer). Obtém alguma cobertura de teste em testes de integração, mas isso não é suficiente.