As soon as functionality is stable, you should try to automate at that point.
There is no one tool that is recommended over any other. Whatever meets your need is the tool to use. If you want to use NUnit and do unit test automation, go for it. If you choose to use a GUI based automation tool to test via the UI, go for that too.
That is the big key to Agile - flexibility. Do what you need to do, when you need to do it, with the tool that is appropriate for the task. Don't get locked in with any single tool or way to do things, else you just took the flexibility out of the process.
Well put Dsquared. I'd add that agile and automation are tough to mix for GUI testing considering the amount of manual scripting. If you have someone that is expert using a particular automation tool, and an expert programmer/QA person, then it is much easier to do GUI automation in an agile shop. In general...automation and agile....a hard brew to mix since agile tends to change alot.
"Imagination is more valuable than knowledge." (AE)
as well as the x-unit tools that work at the ide level of automation look at tooling such as J-unit perf that can provide early feedback to on the non functional aspects of the systems.
As well as freeware and packaged tools that can work at a sub gui level investigate the use of tooling like perl scripting or python that can be used to drive the systems or maybe consider mock tooling or fixture based tools like fit or fitness as well.
mix and match to allow you to be as agile as the project as suggested Dsquared is a very powerful and pragmatic approach.
Agile Testers of the World UNIT!