The test is calling Controller.Initialize with no args but the code you included only has a variant with 1 arg.
I wonder if you have some kind of static initializer in there that might be causing trouble. Alternately, there might be some problem if there are other tests that affect the same static variables but that might run in a different order sometimes... Certainly weird. Have you tried running the test under the debugger? -----Original Message----- From: ixnaum <[EMAIL PROTECTED]> Date: Friday, Nov 21, 2008 4:16 pm Subject: MbUnit Weird database connection failure To: "MbUnit.User" <[email protected]>Reply-To: [email protected] Hello, I came across a really strange problem. I have to say that I'm relatively new to mbUnit so maybe I'm missing something obvious - but I had to post this because I just don't get it. I can sucessfully connect to ODBC database outside of MbUnit, but the same code fails (throws Mysql connect exception) when run inside MbUnit. What's even more strange is that if I rerun the same test with no code change the second time, there is no exception thrown. And that's not where the strangeness ends. If I comment "IList list = Controller.ColumnList;" the test will always succeed with no MySQL exception. If you look at that piece of code, it does nothing related with the database. It just returns an empty IList. The exception trace even says that it's not that line of code that's throwing the exception, it's the line above. That makes sense - but why in the heck does it work just fine when "IList list =" is commented out. Sorry if this post doesn't make sense ... the whole thing doesn't make sense. I should add that I had something similar happen to the same code when I used NUnit on it. I changed to MbUnit partly because I thought NUnit was messed up. Actually NUnit made a bit more sense, in NUnit, the MySQL exception was thrown every single time during Controller.Initialize() ... none of this: it-works-on-a-second-try-if- you-click-run-again Here is my test code: [Test] public void Test() { Controller.Initialize(); IList list = Controller.ColumnList; //I know I don't have any assert code here, but I tried to keep the test to a minimum since it's behaving strange } Controller code: public class Controller { private static List<string> groupTaggedColumns = new List<string>(); private static OdbcConnection connection; public static IList ColumnList { get { return groupTaggedColumns; } } public static void Initialize(string DSNstring) { connection = new OdbcConnection(DSNstring); connection.Open(); } } Exception (BTW I'm not even connecting to localhost, my DSN is setup to connect to another host - again works fine with that line commented out): Message: ERROR [HY000] [MySQL][ODBC 5.1 Driver]Can't connect to MySQL server on 'localhost' (10061) ERROR [HY000] [MySQL][ODBC 5.1 Driver]Can't connect to MySQL server on 'localhost' (10061) Type: System.Data.Odbc.OdbcException Source: Errors: System.Data.Odbc.OdbcErrorCollection ErrorCode: -2146232009 TargetSite: Void HandleError(System.Data.Odbc.OdbcHandle, RetCode) HelpLink: null Stack: at System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode) at System.Data.Odbc.OdbcConnectionHandle..ctor(OdbcConnection connection, OdbcConnectionString constr, OdbcEnvironmentHandle environmentHandle) at System.Data.Odbc.OdbcConnectionFactory.CreateConnection (DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection (DbConnection owningConnection, DbConnectionPoolGroup poolGroup) at System.Data.ProviderBase.DbConnectionFactory.GetConnection (DbConnection owningConnection) at System.Data.ProviderBase.DbConnectionClosed.OpenConnection (DbConnection outerConnection, DbConnectionFactory connectionFactory) at System.Data.Odbc.OdbcConnection.Open() at StretchBase.Core.Controller.Initialize(String DSNstring) in xxxxxxxxxxxxxx at StretchBase.MbUnit.ColumnListTests.Test() in xxxxxxxxxxxx Please help - I'm out of ideas. Thank you! --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "MbUnit.User" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/MbUnitUser?hl=en -~----------~----~----~----~------~----~------~--~---
