问题
My current project uses SSRS as the reporting engine. I have the report executing a text command with about 10 variables passed to it. I have been looking for a solution on how to unit test (acceptance or integration, whatever, just some automation) to an SSRS report project.
I thought about using this method:
- Move the SQL text command to a stored procedure
- Create a Reports.Tests project
- Create a project_tests database and point the connection string to this database
- Set up my unit test <Setup> with the data I would return in the test
- Create a test with the parameters passed and test the result set
I wanted to be sure that I wasn't missing something obvious.
How do other programmers test their reports automatically? Any suggestions on how to improve this method?
EDIT: I should clarify that I would like to only test the result set and not formatting of the report.
回答1:
I saw the Reporting Services Unit Testing Framwork on CodePlex which could be useful, though I haven't had a chance to evaluate it.
回答2:
Don't know if this is to late - but I have looked at the testing product at the following site: http://www.asyncsoftware.co.uk/ReportTestGenerator.html
Which generates (MSTest or NUnit) unit tests based on the assertions you create...might be of help.
回答3:
Well that would only test the database 'API', it wouldn't take in to account any of the features you might be using in the report (filtering, sorting, aggregation etc).
The only thing I can suggest is to find a tool that can compare XML and just get the report server to send an XML version of the report.
http://reportserver/ReportServer?/directory/Report1&rs:Format=XML&rs:Command=Render
There must be a tool out there that can do this
Not sure if this has the capability to do it: http://www.soapui.org/
回答4:
Selenium has been a great tool for me. Selenium should allow you to validate most of the functionality in the report works as expected from the viewpoint of a web browsing user.
Having a test database separate from production will help keep things clean in your environment, but won't affect the quality of the test.
回答5:
So you are basically wanting to test the SP then?
http://tsqlunit.sourceforge.net/
or VSTS for Database Professionals
http://msdn.microsoft.com/en-us/library/bb381703(VS.80).aspx
回答6:
There doesn't seem to be a whole lot of solutions out there for unit testing SSRS. I've found ideas in this blog helpful.
Also, if you are interested in a tool to help, see: Innosphere's SSRS Unit Testing Suite. They are using a very similar method to the one described in the blog, i.e. export the SSRS report as XML, and use the XML to assert things.
Hope some of that helps.
来源:https://stackoverflow.com/questions/743950/how-to-automate-tests-for-reports-in-ssrs