TestStack / TestStack.Seleno

Seleno helps you write automated UI tests in the right way by implementing Page Objects and Page Components and by reading from and writing to web pages using strongly typed view models.
http://teststack.github.com/TestStack.Seleno/
MIT License
180 stars 60 forks source link

Fixed GetSolutionFolderPath null reference exception when no solution file is found. #233

Closed cariarer closed 8 years ago

cariarer commented 8 years ago

Fixed GetSolutionFolderPath. It will now search the current folder, as well as the applications base directory. This helps, when using ReSharper's test runner inside Visual Studio. FromFolder will now also throw a DirectoryNotFoundException, when no solution file can be found.

cariarer commented 8 years ago

Build is broken, due to a locked file, probably by the test runner: Error while applying patch: Failed to delete: C:\ConsoleBuildAgent\work\6625a30e8ee728ba\src\TestStack.Seleno.AcceptanceTests\bin\Release\chromedriver.exe

mwhelan commented 8 years ago

Thanks. I've fixed that issue but now it is complaining about C#6 features. I can look at upgrading the build server and/or you could remove the C#6 features. It seems more stylistic than essential to the fix.

Configuration\WebServers\ProjectLocation.cs(14, 34): error CS0840: 'TestStack.Seleno.Configuration.WebServers.ProjectLocation.FullPath.get' must declare a body because it is not marked abstract or extern. Automatically implemented properties must define both get and set accessors.

mwhelan commented 8 years ago

Hi @cariarer . Thanks so much for this contribution. Unfortunately, I had to revert back to Environment.CurrentDirectory as AppDomain.CurrentDomain.RelativeSearchPath returned an empty string which meant a lot of acceptance tests failed. You would not have known that though because the acceptance tests were broken due to the IE/Chrome drivers being out-of-date. Once I upgraded those and WebDriver to the latest, the acceptance tests started working again which highlighted this issue.

It would be great to get this feature in though. Some extra logic around finding the project would be useful, as would better logging of what is going on during the search and a clear exception when it cannot find a project, would all be very useful. And some tests around it as there are clearly a lot of different scenarios! :-)

Thanks again for the contribution. It's much appreciated and I hope you might like to do some more! :-)

cariarer commented 8 years ago

Hi Michael,

I did some more refactoring. This should hopefully cater for different scenarios now. I also added a unittest to check basic functionality. Let me know, if this succeeds now, as all the unit tests are currently not running on my machine correctly. I will try to get them to work, so I can possibly contribute a bit more later.

Kind regards, Marco...

Am 29.01.2016 um 18:46 schrieb Michael Whelan notifications@github.com:

Hi @cariarer . Thanks so much for this contribution. Unfortunately, I had to revert back to Environment.CurrentDirectory as AppDomain.CurrentDomain.RelativeSearchPath returned an empty string which meant a lot of acceptance tests failed. You would not have known that though because the acceptance tests were broken due to the IE/Chrome drivers being out-of-date. Once I upgraded those and WebDriver to the latest, the acceptance tests started working again which highlighted this issue. It would be great to get this feature in though. Some extra logic around finding the project would be useful, as would better logging of what is going on during the search and a clear exception when it cannot find a project, would all be very useful. And some tests around it as there are clearly a lot of different scenarios! :-) Thanks again for the contribution. It's much appreciated and I hope you might like to do some more! :-) — Reply to this email directly or view it on GitHub.