Comments (6)
I will take a look at this.. at the moment the fixtures are all generated internally at runtime, I'll see if we can add some sort of api to allow you to generate them.
from dunitx.
Actually, I can take on this task.
from dunitx.
I've made a start already, should have it working in the next day or so.
from dunitx.
@vincentparrett thank you!
from dunitx.
this is where I'm heading
IFixtureProviderContext = interface
['{933F8442-77F1-4574-BB5E-2F3D0B8E6E6F}']
function CreateFixture(const AFixtureClass : TClass; const AName : string) : ITestFixture;
end;
IFixtureProvider = interface
['{48D58C88-1236-4B96-9D5F-5DD81DB71504}']
procedure Execute(const context : IFixtureProviderContext);
end;
IPluginLoadContext = interface
['{0A60FE65-C3E3-4E98-9686-8BB6A793810B}']
procedure RegisterFixtureProvider(const provider : IFixtureProvider);
//procedure RegisterSomeOtherFeature(const provider : ISomeOtherFeature);
end;
IPlugin = interface
['{C706DD67-58D0-4B66-92A6-6FBE2AF065A4}']
procedure GetPluginFeatures(const context : IPluginLoadContext);
end;
So you would need to create a class that implements IPlugin, and another that implements IFixtureProvider, which you register when your plugin class's GetPluginFeatures method is called. The IFixtureProviderContext interface has methods for createing a ITestFixture, which has methods for adding child fixtures and tests. I'm going to refactor the internals of DUnitX to use this architecture as well, should clean up the fixture class a lot (I'm not all that happy with it, does too much in the constructor).
from dunitx.
I have implemented the needed functionality in DUnitX and submitted a pull request for DelphiSpec. It's not perfect, DUnitX expects the test methods to be on the same class as a fixture, so I had to create a fixture per scenario. If you can see a better way to do it, I'm open to suggestions.
from dunitx.
Related Issues (20)
- SetupFixture / TearDownFixture not call when TestRepeat attribute set with TestCase attribute présent HOT 1
- Small but annoying typo HOT 1
- Test project won't compile with XE2 and probably higher HOT 1
- fix commandline help documentation for exitbehavior HOT 1
- Assert.Pass(message) do not show anywhere the message
- Assert.AreEqual lacks currency support
- DUnitX xml does not set the namespace in the output properly HOT 3
- Proper support for TAlphaColor and TColor param HOT 1
- Recompling tests in Delphi 11.2 causes IO 105 errors HOT 3
- Android32 with incorrect TestCase parameters HOT 4
- WriteLn causing MemoryLeak using FastMM5
- Add argument 'ATrimValues: Boolean = False' to DUnitX.Attributes.TestCaseAttribute.Create HOT 1
- TestCaseAttribute does not work with parameters of type UInt64 and values > High(Int64)
- Integer compare always true HOT 1
- Problemas with TStringLIst instantiation HOT 1
- Change in FExitBehavior HOT 1
- TestCaseAttribute to support sets HOT 1
- Log elapsed time for each test in TDunitXConsoleMode
- IDE removes DUnitX.Loggers.Xml.NUnit from dpr
- StrToUInt64Def is not available in XE5 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dunitx.