Actually the code I sent is all there is. This is a new project and the very first test failed like this. So the code I sent isn't a partial listing - that's all there was.
[EMAIL PROTECTED] wrote: > MbUnit really does nothing special with any of your code including static > classes. > > You might want to check how you implemented that Singleton. Perhaps the > shared connection is being closed somewhere. > -----Original Message----- > From: Tomas Florian <[EMAIL PROTECTED]> > Date: Friday, Nov 21, 2008 7:31 pm > Subject: MbUnit Re: Weird database connection failure > To: [EMAIL PROTECTED]: [email protected] > > > Sorry about that, the code should say: > > Controller.Initialize("DSN=SentenceDB"); > > Now the good news, I found an interesting workaround when you mentioned the > static initializer. I took out all the "static" keywords from my controller > class and instantiated it inside the Test the plain old way: Controller c = > new Controller(); > > It works fine now! > > What I'm wondering now is why can't I use "static" classes like I tried. > I've been doing it for ages without any problem - it's basically a singleton > pattern. In this example, I used it because I know my application will never > ever need to instantiate more than one Controller class. > > Attaching the debugger was a good idea too. Here are more details regarding > the behavior: > - When I run with debugger attached to Mbunit gui there is no exception thrown > - When I run without debugger the exception is thrown the first time after > the assembly reloads in mbUnit (second time run is ok, it keeps working fine > until I press Assemblies->Reload) > > I should probably repost this on the developer forum instead. It looks like > there is something different about the way mbUnit deals with static classes. > > Thank you for your help. > > > > > > > [EMAIL PROTECTED] wrote: > 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 -~----------~----~----~----~------~----~------~--~---
